Окт 16

Загрузка DDB-растра из ресурсов приложения

В Windows-программировании DIB-растры (BMP-файлы) часто присоединяются к модулю в виде ресурса1, а затем загружаются в программу функцией LoadBitmap, которая преобразует растр к типу Н BITMAP:
HBITMAP LoadBitmap(
HINSTANCE hlnstance. // дескриптор экземпляра приложения
LPCTSTR IpBitmapName // имя растрового ресурса );
Имя ресурса может быть либо строкой с завершающим нуль-символом, например szBmpNamel, либо целочисленным идентификатором, например IDB_1. В первом случае параметру IpBitmapName передается адрес строки szBmpNamel, а во втором — выражение, преобразующее целочисленный идентификатор к типу LPCTSTR при помощи макроса MAKEINTRESOURCE, то есть параметр получает значение MAKEINTRES0URCE(IDB_1).
Растровые ресурсы хранятся в модулях Win32 в формате упакованного DIB-растра. Функция LoadBitmap находит растровый ресурс, загружает его в память, получает дескриптор упакованного DIB-растра и затем на его базе создает DDB-растр, совместимый с текущим экранным режимом.
Пример использования функции LoadBitmap можно найти в листинге 5.4 и в листинге 11.1.
Приложение может также вызвать функцию LoadBitmap для загрузки предопределенных в системе растров с изображениями различных кнопок, которые использует Win32 API. Для этого необходимо передать параметру hlnstance значение NULL, а второму параметру — одно из значений 0BM_BTNC0RNERS, OBM_BTSIZE и других аналогичных констант.