LoadBitmap () будет создавать только совместимые с отображением растровые изображения, но не зависящие от устройства растровые изображения (DIB).И, как говорит сама документация LoadBitmap () , в самом верху: «Эта функция была заменена функцией LoadImage ».Это почти удивительно, что LoadBitmap () все еще существует, так как я думаю, что он был заменен LoadImage () начиная с Windows 95! (просто показывает, как трудно отказаться от обратной совместимости!)
OEM-изображения - это предопределенные изображения для всей системы, которые можно запросить, передав параметр NULL hInstance и магическое имя lpBitmapName (например, OBM_BTNCORNERS, OBM_CHECKBOXES и т. Д.).Эти использовали для использования Windows для рисования различных частей пользовательского интерфейса, но теперь это обрабатывается DrawFrameControl () .Опять же, растровые изображения OEM - это старая, старая вещь, и «новое» поведение существует уже давно.
Если у вас нет веских причин для использования LoadBitmap (), я буду следоватьзадокументированное предложение и использование LoadImage ().Чтобы получить LoadBitmap () -эквивалентное поведение, используйте:
LoadImage(hInstance, lpBitmapName, IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
В новом коде вы, вероятно, действительно захотите независимое от устройства растровое изображение, и в этом случае у вас будет для использования LoadImage (), и последний аргумент должен быть «LR_CREATEDIBSECTION».В вашем случае наличия унаследованного кода придерживаться «LR_DEFAULTCOLOR» может быть безопаснее.