Win32 API. Пиктограммы
Страница 10. Совместное использование ресурсов пиктограммы


Совместное использование ресурсов пиктограммы

Следующий код использует функции CreateIconFromResourceEx, DrawIcon и LookupIconIdFromDirectoryEx и некоторые из функций ресурса, чтобы создать дескриптор пиктограммы, основанный на ее данных из другого исполняемого файла. Затем, он показывает на экране пиктограмму в окне.

HICON hIcon1;// дескриптор пиктограммы
HINSTANCE hExe;// дескриптор загружаемого .EXE файла
HRSRC hResource;// дескриптор для FindResource (поиска ресурса)
HRSRC hMem;// дескриптор для LoadResource (загрузки ресурса)
BYTE *lpResource;// адрес данных ресурса
int nID;// ID (идентификатор ресурса, который лучше всего
// соответствует текущему экрану

HDC hdc;// дескриптор контекста дисплея

// Загрузка файла, из которого копируется пиктограмма.
hExe = LoadLibrary("myapp.exe");

// Поиск каталога пиктограммы, идентификатор которой - 440.
hResource = FindResource(hExe,
MAKEINTRESOURCE(440),
RT_GROUP_ICON);

// Загрузка и просмотр каталога пиктограммы.
hMem = LoadResource(hExe, hResource);

lpResource = LockResource(hMem);

// Получаем идентификатор пиктограммы, которая должна соответствовать
// видеодисплею.
nID = LookupIconIdFromDirectoryEx((PBYTE) lpResource, TRUE,
CXICON, CYICON, LR_DEFAULTCOLOR);

// Находим биты nID (идентификатора) пиктограммы.

hResource = FindResource(hExe,
MAKEINTRESOURCE(nID),
MAKEINTRESOURCE(RT_ICON));

// Загружаем и просматриваем пиктограмму.
hMem = LoadResource(hExe, hResource);

lpResource = LockResource(hMem);

// Создаем дескриптор пиктограммы.

hIcon1 = CreateIconFromResourceEx((PBYTE) lpResource,
SizeofResource(hExe, hResource), TRUE, 0x00030000,
CXICON, CYICON, LR_DEFAULTCOLOR);

// Рисуем пиктограмму в рабочей области.
DrawIcon(hdc, 10, 20, hIcon1);

 
« Предыдущая статья   Следующая статья »