Win32 API. Пиктограммы
ОГЛАВЛЕНИЕ
"Горячая точка" пиктограммы
Один из пикселей в пиктограмме обозначен как " горячая точка "(hot spot), которая является точкой, при помощи которой система устанавливает и распознает, например, позицию пиктограммы. " Горячая точка " пиктограммы - обычно пиксель, размещенный в её центре. Если Вы используете функцию CreateIconIndirect, чтобы создать пиктограмму, Вы можете определить любой пиксель, который будет " горячей точкой ".
Типы пиктограмм
Операционная система предоставляет набор стандартных пиктограмм (standard icons), которые являются доступными для любой прикладной программы, чтобы использовать их в любое время. Заголовочные файлы Windows содержат идентификаторы для стандартных пиктограмм - идентификаторы начинаются с префикса "IDI_".
Каждая стандартная пиктограмма имеет соответствующее заданное по умолчанию изображение, связанное с ней. Пользователь может заменять заданное по умолчанию изображение пиктограммы, связанное с каким-либо стандартным курсором в любое время.
Пользовательские пиктограммы (custom icons) разрабатываются для использования в конкретной прикладной программе и могут быть любого вида.
Размеры пиктограммы
Windows использует четыре размера пиктограмм: системная маленькая, системная большая, маленькая для оболочки и большая для оболочки.
Маленькая системная пиктограмма (system small icon) отображается в заголовке окна. Чтобы изменить размер системной маленькой пиктограммы, запустите апплет «Экран» в Панели управления, щелкните мышью по вкладке Внешний вид, выберите Заголовки Кнопок из списка Элементы, затем установите поле Размер. Чтобы возвратить размер системной маленькой пиктограммы, вызовите функцию GetSystemMetrics с флажком SM_CXSMICON и SM_CYSMICON.
Большая системная пиктограмма (system large icon) главным образом используется прикладными программами, а также она отображается в диалоговом окне переключения программ при помощи Alt+Tab. Функции CreateIconFromResource, DrawIcon, ExtractIcon и LoadIcon все используют большие системные пиктограммы. Размер большой системной пиктограммы определяется видеодрайвером, следовательно, он не может быть изменен. Вы можете возвратить размер большой системной пиктограммы, при помощи вызова GetSystemMetrics с флажками SM_CXICON и SM_CYICON.
Функции CreateIcon, CreateIconFromResourceEx и CreateIconIndirect могут быть использованы для работы с пиктограммами и других размеров, отличающихся от большой системной пиктограммы.
Маленькая пиктограмма оболочки (shell small icon) используется в Проводнике Windows и стандартных диалоговых окнах. В настоящее время, это значение по умолчанию для системы небольшого размера. Чтобы получить размер маленькой пиктограммы оболочки, используйте функцию SHGetFileInfo с флажками SHGFI_SHELLICONSIZE | SHGFI_SMALLICON, которая возвратит дескриптор списка изображений системы, а затем функцию ImageList_GetIconSize, чтобы получить размер пиктограммы.
Большая пиктограмма оболочки (shell large icon) используется на рабочем столе. Чтобы изменить размер большой пиктограммы, запустите апплет "Экран" в Панели управления, щелкните мышью по вкладке Эффекты (для Windows 98), выберите Пиктограмму из Списка элементов, а затем установите поле Размер (этот размер сохраняется в системном реестре, в каталоге HKEY_CURRENT_USER\CONTROL Panel, Desktop\WindowMetrics\Shell Icon Size). Вы можете также щелкнуть по вкладке Plus! и установить флажок напротив надписи Использовать большие пиктограммы (Use large icons). Чтобы возвратить размер большой пиктограммы оболочки, используйте функцию SHGetFileInfo с SHGFI_SHELLICONSIZE, которая возвратит дескриптор списка изображений системы, а затем функцию ImageList_GetIconSize, чтобы получить размер пиктограммы.
Меню Пуск (Start) использует или маленькие пиктограммы оболочки или большие пиктограммы оболочки, зависимости от того, установлен ли флажок напротив надписи Использовать большие пиктограммы (Use large icons).
Ваша прикладная программа должна обеспечить ресурсы пиктограмм в следующих размерах:
48x48, 256 цветов
32x32, 16 цветов
16x16 пикселей, 16 цветов
При заполнении структуры WNDCLASSEX, которая используется при регистрации класса вашего окна, установите ее член hIcon как пиктограмму 32x32, а член hIconSm как пиктограмму 16x16. Для получения дополнительной информации о классах пиктограмм, см. статью Класс пиктограммы.
Создание пиктограммы
Стандартные пиктограммы предопределены, так что нет необходимости создавать их. Чтобы использовать стандартную пиктограмму, прикладная программа может получить ее дескриптор, используя функцию LoadImage. Дескриптор пиктограммы (icon handle) - уникальное значение типа HICON, который идентифицирует стандартную или пользовательскую пиктограмму.
Чтобы создать пользовательскую пиктограмму для прикладной программы, разработчики обычно используют программу для работы с графикой и включают ресурс ПИКТОГРАММЫ (ICON) в файл определения ресурса приложения. Во время запуска, прикладная программа может вызывать LoadIcon или LoadImage, чтобы получить дескриптор пиктограммы. Ресурс пиктограммы содержит данные для нескольких различных устройств отображения. Функции LoadIcon и LoadImage автоматически выбирают данные наиболее соответствующие для текущего устройства отображения.
Прикладная программа может также создать и пользовательскую пиктограмму в период запуска программы, при помощи использования функции CreateIconIndirect, которая создает пиктограмму, основанную на содержании структуры ICONINFO. Функция GetIconInfo заполняет структуру координатами "горячей точки" и информацией о битовой маске и цвете точечного рисунка пиктограммы.
Прикладные программы должны исполнять пользовательские пиктограммы как ресурсы и должны использовать LoadIcon или LoadImage, которые предпочтительнее чем создание пиктограммы в период запуска программы. Использование ресурсов пиктограммы помогает избежать зависимости от устройства, упрощает определение местонахождения и позволяет приложениям совместно использовать образ пиктограммы.
Функция CreateIconFromResourceEx позволяет прикладной программе просматривать ресурсы системы и создавать пиктограммы и курсоры, основанные на данных ресурса. Функция CreateIconFromResourceEx создает пиктограмму, основанную на двоичных данных ресурса из других исполняемых файлов или динамически подключаемых библиотек (DLL). Прикладная программа должна перед обращением к этой функции обратиться к функции LookupIconIdFromDirectoryEx и нескольким функциям ресурса. Функция LookupIconIdFromDirectoryEx возвращает идентификатор наиболее соответствующих данных пиктограммы для текущего устройства отображения. Для получения дополнительной информации о функциях ресурса, см. статью Функции ресурса.
Отображение пиктограммы на экране
Прикладная программа может получить изображение пиктограммы, используя функцию GetIconInfo, а может нарисовать ее, используя функцию DrawIconEx. Чтобы нарисовать заданное по умолчанию изображение пиктограммы, установите флажок DI_COMPAT при вызове DrawIconEx. Если Вы не устанавливаете флажок DI_COMPAT, DrawIconEx рисует пиктограмму, используя изображение, которое определил пользователь.
Разрушение пиктограммы
Когда прикладная программа больше не нуждается в пиктограмме, которую она создала, используя функцию CreateIconIndirect, она должна разрушить пиктограмму. Функция DestroyIcon уничтожает дескриптор пиктограммы и освобождает любую память, использованную для нее. Прикладные программы должны использовать эту функцию только для пиктограмм, созданных при помощи CreateIconIndirect; ей нет необходимости уничтожать другие пиктограммы.
Дублирование пиктограммы
Функция CopyIcon копирует дескриптор пиктограммы. Это позволяет прикладной программе или динамически подключаемой библиотеке (DLL) получить свой собственный дескриптор пиктограммы, принадлежащей другому модулю. Затем, если другой модуль освобождается, приложение, которое скопировало пиктограмму, будет все еще получать возможность, чтобы использовать ее.
Функция CopyImage создает новую пиктограмму, основанную на заданной исходной пиктограмме. Новая пиктограмма может быть больше или меньше, чем исходная пиктограмма.
За информации о добавлении, удалении или замене ресурса пиктограммы в исполняемом (.EXE) файле, обратитесь к статье Ресурсы.
Использование пиктограмм
Эти ниже следующие темы описывают, как выполнять некоторые задачи, связанные пиктограммами:
- Создание пиктограмм
- Показ пиктограмм на экране
- Совместное использование ресурсов пиктограммы
Создание пиктограммы
Чтобы использовать пиктограмму, ваша прикладная программа должна получить ее дескриптор. Следующий пример показывает, как создать два различных дескриптора пиктограммы: один для стандартной пиктограммы со знаком восклицания и второй для пользовательской пиктограммы, включенной как ресурс в файле определения ресурса приложения.
HICON hIcon1; // дескриптор пиктограммы
HICON hIcon2; // дескриптор пиктограммы
// Создаем стандартную пиктограмму со знаком вопроса.
hIcon1 = LoadIcon(NULL, IDI_QUESTION);
// Создаем пользовательскую пиктограмму, основанную на ресурсе.
hIcon2 = LoadIcon(hinst, MAKEINTRESOURCE(460));
// Создаем индивидуальную пиктограмму периода выполнения программы.
Прикладная программа должна исполнять пользовательские пиктограммы как ресурсы и должна использовать функцию LoadIcon или LoadImage, предпочтительнее, а не создавать пиктограммы периода выполнения программы. Этот подход позволяет избежать зависимости от устройства, упрощает определение местонахождения и позволяет программам совместно использовать точечные рисунки пиктограммы. Тем не менее, следующий пример использует CreateIcon, чтобы создать пользовательскую пиктограмму в период выполнения программы, основанную на растровых битовых масках; это включено для того, чтобы иллюстрировать, как система интерпретирует битовые маски точечного рисунка пиктограммы.
HICON hIcon3; // дескриптор пиктограммы
// светлая(yang) битовая маска AND пиктограммы
BYTE ANDmaskIcon[] = {
0xFF, 0xFF, 0xFF, 0xFF, // строка 1
0xFF, 0xFF, 0xC3, 0xFF, // строка 2
0xFF, 0xFF, 0x00, 0xFF, // строка 3
0xFF, 0xFE, 0x00, 0x7F, // строка 4
0xFF, 0xFC, 0x00, 0x1F, // строка 5
0xFF, 0xF8, 0x00, 0x0F, // строка 6
0xFF, 0xF8, 0x00, 0x0F, // строка 7
0xFF, 0xF0, 0x00, 0x07, // строка 8
0xFF, 0xF0, 0x00, 0x03, // строка 9
0xFF, 0xE0, 0x00, 0x03, // строка 10
0xFF, 0xE0, 0x00, 0x01, // строка 11
0xFF, 0xE0, 0x00, 0x01, // строка 12
0xFF, 0xF0, 0x00, 0x01, // строка 13
0xFF, 0xF0, 0x00, 0x00, // строка 14
0xFF, 0xF8, 0x00, 0x00, // строка 15
0xFF, 0xFC, 0x00, 0x00, // строка 16
0xFF, 0xFF, 0x00, 0x00, // строка 17
0xFF, 0xFF, 0x80, 0x00, // строка 18
0xFF, 0xFF, 0xE0, 0x00, // строка 19
0xFF, 0xFF, 0xE0, 0x01, // строка 20
0xFF, 0xFF, 0xF0, 0x01, // строка 21
0xFF, 0xFF, 0xF0, 0x01, // строка 22
0xFF, 0xFF, 0xF0, 0x03, // строка 23
0xFF, 0xFF, 0xE0, 0x03, // строка 24
0xFF, 0xFF, 0xE0, 0x07, // строка 25
0xFF, 0xFF, 0xC0, 0x0F, // строка 26
0xFF, 0xFF, 0xC0, 0x0F, // строка 27
0xFF, 0xFF, 0x80, 0x1F, // строка 28
0xFF, 0xFF, 0x00, 0x7F, // строка 29
0xFF, 0xFC, 0x00, 0xFF, // строка 30
0xFF, 0xF8, 0x03, 0xFF, // строка 31
0xFF, 0xFC, 0x3F, 0xFF}; // строка 32
// Светлая (yang) битовая маска XOR пиктограммы
BYTE XORmaskIcon[] = {
0x00, 0x00, 0x00, 0x00, // строка 1
0x00, 0x00, 0x00, 0x00, // строка 2
0x00, 0x00, 0x00, 0x00, // строка 3
0x00, 0x00, 0x00, 0x00, // строка 4
0x00, 0x00, 0x00, 0x00, // строка 5
0x00, 0x00, 0x00, 0x00, // строка 6
0x00, 0x00, 0x00, 0x00, // строка 7
0x00, 0x00, 0x38, 0x00, // строка 8
0x00, 0x00, 0x7C, 0x00, // строка 9
0x00, 0x00, 0x7C, 0x00, // строка 10
0x00, 0x00, 0x7C, 0x00, // строка 11
0x00, 0x00, 0x38, 0x00, // строка 12
0x00, 0x00, 0x00, 0x00, // строка 13
0x00, 0x00, 0x00, 0x00, // строка 14
0x00, 0x00, 0x00, 0x00, // строка 15
0x00, 0x00, 0x00, 0x00, // строка 16
0x00, 0x00, 0x00, 0x00, // строка 17
0x00, 0x00, 0x00, 0x00, // строка 18
0x00, 0x00, 0x00, 0x00, // строка 19
0x00, 0x00, 0x00, 0x00, // строка 20
0x00, 0x00, 0x00, 0x00, // строка 21
0x00, 0x00, 0x00, 0x00, // строка 22
0x00, 0x00, 0x00, 0x00, // строка 23
0x00, 0x00, 0x00, 0x00, // строка 24
0x00, 0x00, 0x00, 0x00, // строка 25
0x00, 0x00, 0x00, 0x00, // строка 26
0x00, 0x00, 0x00, 0x00, // строка 27
0x00, 0x00, 0x00, 0x00, // строка 28
0x00, 0x00, 0x00, 0x00, // строка 29
0x00, 0x00, 0x00, 0x00, // строка 30
0x00, 0x00, 0x00, 0x00, // строка 31
0x00, 0x00, 0x00, 0x00}; // строка 32
hIcon3 = CreateIcon(hinst, // экземпляр приложения
32, // ширина пиктограммы
32, // высота пиктограммы
1, // число плоскостей XOR
1, // число битов на пиксель
ANDmaskIcon, // битовая маска AND
XORmaskIcon); // битовая маска XOR
Чтобы создать пиктограмму, CreateIcon применяет следующую таблицу истинности битовым маскам XOR и AND.
AND битовая маска | XOR битовая маска | Изображение |
---|---|---|
0 | 0 | Черное |
0 | 1 | Белое |
1 | 0 | Экранное |
1 | 1 | Противоположное экранному |
Перед закрытием, ваша прикладная программа должна использовать DestroyIcon, чтобы уничтожить любую пиктограмму созданную, при помощи использования CreateIconIndirect. Вам нет необходимости уничтожить пиктограммы, созданные другими функциями.
Отображение пиктограммы на экране
Ваша прикладная программа может загружать и создавать пиктограммы, чтобы показать их в рабочей области прикладной программы или дочерних окон. Следующий пример показывает, как рисовать пиктограмму в рабочей области окна, контекст устройства отображения (DC) которого идентифицирован параметром hdc.
HICON hIcon1; // дескриптор пиктограммы
HDC hdc; // дескриптор устройства отображения
DrawIcon(hdc, 10, 20, hIcon1);
Windows автоматически показывает на экране пиктограмму(ы) класса окна. Ваша прикладная программа может назначить пиктограммы класса при регистрации класса окна. Ваше приложение может заменить пиктограммы класса, используя функцию SetClassLong. Эта функция изменяет заданные по умолчанию параметры окна для всех окон данного класса. Следующий пример меняет пиктограмму класса на пиктограмму, чей идентификатор ресурса является 480.
HINSTANCE hinst; // дескриптор текущего экземпляра
HWND hwnd; // дескриптор основного окна
// Изменяем пиктограмму для класса окна hwnd's
SetClassLong(hwnd, // дескриптор окна изменяет пиктограмму
GCL_HICON,
(LONG) LoadIcon(hinst, MAKEINTRESOURCE(480))
);
Для получения дополнительной информации о классах окна, см. Классы окна.
Совместное использование ресурсов пиктограммы
Следующий код использует функции 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);
Справочник по пиктограммам
Ниже перечисленные функции структуры и сообщения используются с пиктограммами.
Функции пиктограммы
Ниже перечислены функции, которые используются пиктограммами:
- CopyIcon
- CreateIcon
- CreateIconFromResource
- CreateIconFromResourceEx
- CreateIconIndirect
- DestroyIcon
- DrawIcon
- DrawIconEx
- GetIconInfo
- LoadIcon
- LookupIconIdFromDirectory
- LookupIconIdFromDirectoryEx
Функция CopyIcon
(КопироватьПиктограмму)
Функция CopyIcon копирует определяемую пиктограмму из другого модуля в текущий модуль.
Синтаксис
HICON CopyIcon
(
HICON hIcon // дескриптор пиктограммы, которая копируется
);
Параметры
hIconИдентифицирует пиктограмму, которая будет скопирована.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор дубликата пиктограммы.Если функция не выполняет задачу, величина возвращаемого значения - ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите GetLastError.
Замечания
Функция CopyIcon позволяет прикладной программе или динамически компонуемой библиотеке (DLL) получить свой собственный дескриптор для пиктограммы, принадлежащей другому модулю. Если другой модуль освобождается, пиктограмма программы будет все еще получать возможность использовать пиктограмму.Смотри также
CopyCursor, DrawIcon, DrawIconExРазмещение и совместимость CopyIcon
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция CreateIcon
(СоздатьПиктограмму)
Функция CreateIcon создает пиктограмму, которая имеет определенный размер, цвет и битовые шаблоны.
Синтаксис
HICON CreateIcon
{
HINSTANCE hInstance, // дескриптор экземпляра приложения
int nWidth, // ширина пиктограммы
int nHeight, // высота пиктограммы
BYTE cPlanes, // число плоскостей в битовой маске XOR
BYTE cBitsPixel, // число битов на пиксель в битовой маске XOR
CONST BYTE *lpbANDbits, // указатель на массив битовой маски AND
CONST BYTE *lpbXORbits // указатель на массив битовой маски XOR
);
Параметры
hInstanceИдентифицирует экземпляр модуля, создающего пиктограмму.
nWidth
Определяет ширину пиктограммы, в пикселях.
nHeight
Определяет высоту пиктограммы, в пикселях.
cPlanes
Определяет число плоскостей в битовой маске XOR пиктограммы.
cBitsPixel
Определяет число битов на пиксель в битовой маске XOR пиктограммы.
lpbANDbits
Указывает на массив байтов, который содержит битовые значения для битовой маски AND пиктограммы. Эта битовая маска описывает одноцветный точечный рисунок.
lpbXORbits
Указывает на массив байтов, который содержит битовые значения для битовой маски XOR пиктограммы. Эта битовая маска описывает одноцветный или аппаратно-зависимый цветной точечный рисунок.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор пиктограммы.Если функция не выполняет задачу, величина возвращаемого значения ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
Параметры nWidth и nHeight должны определить ширину и высоту, поддерживаемую текущим драйвером дисплея, потому что система не может создавать пиктограммы, других размеров. Чтобы определить ширину и высоту, поддерживаемую драйвером дисплея, используйте функцию GetSystemMetrics, определяя значение SM_CXICON или SM_CYICON.CreateIcon применяет следующую таблицу истинности к битовым маскам XOR и AND:
Битовая маска AND | Битовая маска XOR | Изображение |
---|---|---|
0 | 0 | Черное |
0 | 1 | Белое |
1 | 0 | Экранное |
1 | 1 | Обратное экранному |
Смотри также
GetSystemMetricsРазмещение и совместимость CreateIcon
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция CreateIconFromResource
(СоздатьПиктограммуИзРесурса)
Функция CreateIconFromResource создает пиктограмму или курсор из битов ресурса, описывающих пиктограмму.
Синтаксис
HICON CreateIconFromResource
(
PBYTE presbits, // указатель на биты пиктограммы или курсора
DWORD dwResSize, // число байтов в буфере битов
BOOL fIcon, // флажок пиктограммы или курсора
DWORD dwVer // версия формата Windows
);
Параметры
presbitsУказывает на буфер, содержащий биты ресурса пиктограммы или курсора. Эти биты обычно загружаются при помощи вызова функций LookupIconIdFromDirectory (в Windows 95, Вы можете также вызвать LookupIconIdFromDirectoryEx) и LoadResource.
dwResSize
Определяет размер, в байтах, набор битов, указанных параметром presbits.
fIcon
Определяет, что должно быть создано - пиктограмма или курсор. Если этот параметр - ИСТИНА (TRUE), должна быть создана пиктограмма. Если он - ЛОЖЬ (FALSE), должен быть создан курсор.
dwVer
Определяет номер версии формата пиктограммы или курсора для битов ресурса, указанных параметром presbits. Этот параметр может быть одним из следующих значений:
Формат dwVer
Windows 2.x 0x00020000
Windows 3.x 0x00030000
Все прикладные программы, базирующиеся на Microsoft Win32, использует для пиктограмм и курсоров формат Windows 3.x.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор пиктограммы или курсора.Если функция не выполняет задачу, величина возвращаемого значения - ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
Функции CreateIconFromResource, CreateIconIndirect, GetIconInfo и LookupIconIdFromDirectory (и в Windows 95 функции CreateIconFromResourceEx и LookupIconIdFromDirectoryEx) позволяют оболочке прикладной программы и программе просмотра пиктограммы проверять и использовать ресурсы по всей системе.Смотри также
CreateIconFromResource, CreateIconFromResourceEx, CreateIconIndirect, GetIconInfo, LoadResource, LookupIconIdFromDirectory, LookupIconIdFromDirectoryExРазмещение и совместимость CreateIconFromResource
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция CreateIconFromResourceEx
(СоздатьПиктограммуИзРесурсаРасширенная)
[Теперь поддерживается в Windows NT]
Функция CreateIconFromResourceEx создает пиктограмму или курсор из битов ресурса, описывающих пиктограмму.
Синтаксис
HICON CreateIconFromResourceEx
(
PBYTE pbIconBits, // указатель на биты пиктограммы или курсора
DWORD cbIconBits, // число байтов в буфере битов
BOOL fIcon, // флажок пиктограммы или курсора
DWORD dwVersion, // версия формата Windows
int cxDesired, // желаемая ширина пиктограммы или курсора
int cyDesired, // желаемая высота пиктограммы или курсора
UINT uFlags // флажки загружаемого ресурса
);
Параметры
pbIconBitsУказывает на буфер, содержащий биты ресурса пиктограммы или курсора. Эти биты обычно загружаются при помощи вызова функций LookupIconIdFromDirectoryEx и LoadResource.
cbIconBits
Определяет размер, в байтах, набора битов, указанных параметром pbIconBits.
fIcon
Определяет, что должно быть создано - пиктограмма или курсор. Если этот параметр - ИСТИНА (TRUE), должна быть создана пиктограмма. Если это - ЛОЖЬ (FALSE), должен быть создан курсор.
dwVersion
Определяет номер версии формата пиктограммы или курсора для битов ресурса, указанных параметром pbIconBits. Этот параметр может быть одним из следующих значений:
Формат dwVersion
Windows 2.x 0x00020000
Windows 3.x 0x00030000
Все прикладные программы, базирующиеся на Win32, используют формат Windows 3.x для пиктограмм и курсоров.
cxDesired
Определяет желаемую ширину, в пикселях, пиктограммы или курсора. Если этот параметр нулевой, функция использует, чтобы установить ширину, значение показателя системы SM_CXICON или SM_CXCURSOR.
cyDesired
Определяет желаемую высоту, в пикселях, пиктограммы или курсора. Если этот параметр нулевой, функция использует, чтобы установить высоту, значение показателя системы SM_CYICON или SM_CYCURSOR.
uFlags
Определяет комбинацию следующих значений:
- LR_DEFAULTCOLOR - Использует заданный по умолчанию формат цвета.
- LR_MONOCHROME - Создает одноцветную пиктограмму или курсор.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор пиктограммы или курсора.Если функция не выполняет задачу, величина возвращаемого значения - ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
Функции CreateIconFromResourceEx, CreateIconFromResource, CreateIconIndirect, GetIconInfo и LookupIconIdFromDirectoryEx позволяют оболочке прикладной программы и программе просмотра пиктограммы проверять и использовать ресурсы по всей системе.Смотри также
BITMAPINFOHEADER, CreateIconFromResource, CreateIconIndirect, GetIconInfo, LoadResource, LookupIconIdFromDirectoryExРазмещение и совместимость CreateIconFromResourceEx
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция CreateIconIndirect
(ПиктограммуСоздатьКосвенно)
Функция CreateIconIndirect создает пиктограмму или курсор из структуры ICONINFO.
Синтаксис
HICON CreateIconIndirect
(
PICONINFO piconinfo // указатель на структуру информации о пиктограмме
);
Параметры
piconinfoУказывает на структуру CONINFO, которую функция использует, чтобы создать пиктограмму или курсор.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор пиктограммы или курсора, который создан.Если функция не выполняет задачу, величина возвращаемого значения - ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
Система копирует точечные рисунки в структуру ICONINFO перед созданием пиктограммы или курсора. Прикладная программа должна продолжить управлять первоначальными точечными рисунками и удалять их, когда они больше не нужны.Когда Вы заканчиваете использовать пиктограмму, уничтожьте её, используя функцию DestroyIcon.
Смотри также
DestroyIcon, ICONINFOРазмещение и совместимость CreateIconIndirect
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция DestroyIcon
(РазрушитьПиктограмму)
Функция DestroyIcon уничтожает пиктограмму и освобождает любую память, занятую ею.
Синтаксис
BOOL DestroyIcon
(
HICON hIcon // дескриптор пиктограммы, которую надо уничтожить
);
Параметры
hIconИдентифицирует пиктограмму, которая будет разрушена. Пиктограмма не должна быть в использовании.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения отличная от нуля.Если функция не выполняет задачу, величина возвращаемого значения нулевая. Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
Функцию DestroyIcon необходимо вызвать только для пиктограмм, созданных функцией CreateIconIndirect.Смотри также
CreateIconIndirectРазмещение и совместимость DestroyIcon
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция DrawIcon
(РисуемПиктограмму)
Функция DrawIcon рисует пиктограмму в рабочей области окна заданным контекстом устройства.
Синтаксис
BOOL DrawIcon
(
HDC hDC, // дескриптор контекста устройства
int X, // x-координата верхнего левого угла
int Y, // y- координата верхнего левого угла
HICON hIcon // дескриптор иконы, которую надо нарисовать
);
Параметры
hDCИдентифицирует контекст устройства для окна.
X
Определяет логическую x-координату левого верхнего угла пиктограммы.
Y
Определяет логическую y-координату левого верхнего угла пиктограммы.
hIcon
Идентифицирует пиктограмму, которая будет нарисована.
Windows NT: ресурс пиктограммы должен быть предварительно загружен, при помощи использования функции LoadIcon.
Windows 95: ресурс пиктограммы, должен быть предварительно загружен, при помощи использования функции LoadIcon или LoadImage.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения отличная от нуля.Если функция не выполняет задачу, величина возвращаемого значения нулевая. Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
DrawIcon помещает левый верхний угол пиктограммы в расположение, определяемое X и Y параметрами. Расположение подчиненно текущему режиму отображения контекста устройства.Смотри также
CreateIcon, DrawIconEx, LoadIconРазмещение и совместимость DrawIcon
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция DrawIconEx
(РисуемПиктограммуРасширенная)
Функция DrawIconEx рисует пиктограмму или курсор в рабочей области окна, определившего контекст устройства, выполняя определяемые растровые действия, и, растягивая или сжимая пиктограмму или курсор как задано.
Синтаксис
BOOL DrawIconEx
(
HDC hdc, // дескриптор контекста устройства
int xLeft, // x-координата верхнего левого угла
int yTop, // y-координата верхнего левого угла
HICON hIcon, // дескриптор пиктограммы, которую надо рисовать
int cxWidth, // ширина пиктограммы
int cyWidth, // высота пиктограммы
UINT istepIfAniCur, // индекс фрейма в живом указателе
HBRUSH hbrFlickerFreeDraw, // дескриптор кисти фона
UINT diFlags // флажки рисуемой пиктограммы
);
Параметры
hdcИдентифицирует контекст устройства для окна.
xLeft
Определяет логическую x-координату левого верхнего угла пиктограммы или курсора.
yTop
Определяет логическую y-координату левого верхнего угла пиктограммы или курсора. hIcon
Идентифицирует пиктограмму или курсор, который будет нарисован. Этот параметр может идентифицировать живой указатель. Ресурс пиктограммы или курсора, должны быть предварительно загружены при помощи использования функции LoadImage.
cxWidth
Определяет логическую ширину пиктограммы или курсора. Если этот параметр нулевой, а параметр diFlags - DI_DEFAULTSIZE, функция, чтобы установить ширину, использует метрическое значение SM_CXICON или SM_CXCURSOR системы. Если этот параметр нулевой, а DI_DEFAULTSIZE не использован, функция использует фактическую ширину ресурса.
cyWidth
Определяет логическую высоту пиктограммы или курсора. Если этот параметр нулевой, а diFlags параметр - DI_DEFAULTSIZE, функция, чтобы установить высоту, использует метрическое значение SM_CYICON или SM_CYCURSOR системы. Если этот параметр нулевой, а DI_DEFAULTSIZE не использован, функция использует фактическую высоту из ресурса.
istepIfAniCur
Определяет индекс кадра для рисования, если hIcon идентифицирует живой указатель. Этот параметр игнорируется, если hIcon не идентифицирует живой указатель.
hbrFlickerFreeDraw
Идентифицирует кисть, которую система использует для немерцающего рисунка. Если hbrBkgnd - допустимый дескриптор кисти, система создает вне экрана точечный рисунок, используя заданную кисть для цвета фона, рисует пиктограмму или курсор в виде точечного рисунка, а затем копирует его в контекст устройства, идентифицированный при помощи hdc. Если hbrBkgnd имеет значение ПУСТО (NULL), система рисует пиктограмму или курсор непосредственно в контекст устройства.
diFlags
Определяет флажки рисунка. Этот параметр может быть одним из следующих значений:
- DI_COMPAT - Рисует пиктограмму или курсор, используя изображение определяемое системой по умолчанию, а не изображение определяемое пользователем.
- DI_DEFAULTSIZE - Если в параметрах cxWidth и cyWidth установлен нуль, рисует пиктограмму или курсор, используя ширину и высоту определяемую метрическими значениями системы для курсоров или пиктограмм. Если этот флажок не установлен, а в параметры cxWidth и cyWidth установлены в нуль, функция использует фактический размер из ресурса.
- DI_IMAGE - Выполняет растровую операцию, определяемую элементом ropImage.
- DI_MASK - Выполняет растровую операцию, определяемую элементом ropMask.
- DI_NORMAL - Комбинация DI_IMAGE и DI_MASK.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения отличная от нуля.Если функция не выполняет задачу, величина возвращаемого значения нулевая. Чтобы получать расширенные данные об ошибках, вызовите GetLastError
Замечания
Функция DrawIconEx помещает левый верхний угол пиктограммы в позицию, определяемую параметрами xLeft и yTop. Расположение подчиненно текущему режиму отображения контекста устройства.Смотри также
CopyImage, DrawIcon, LoadImageРазмещение и совместимость DrawIconEx
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция GetIconInfo
(ПолучитьИнформациюПиктограммы)
Функция GetIconInfo получает информацию о заданной пиктограмме или курсору.
Синтаксис
BOOL GetIconInfo
(
HICON hIcon, // дескриптор пиктограммы
PICONINFO piconinfo // адрес структуры пиктограммы
);
Параметры
Идентифицирует пиктограмму или курсор. Чтобы получить информацию о стандартной пиктограмме или курсору, определите одно из следующих значений:- IDC_ARROW - Курсор в виде стрелки
- IDC_IBEAM - Курсор в виде прямой линии – I
- IDC_WAIT - Курсор в виде песочных часов
- IDC_CROSS - Курсор в виде креста
- IDC_UPARROW - Курсор в виде стрелки вверх
- IDC_SIZENWSE - Установка размеров курсором, указывает на северо-запад и юго-восток
- IDC_SIZENESW - Установка размеров курсором, указывает на северо-восток и юго-запад
- IDC_SIZEWE - Установка размеров курсором, указывает на запад и восток
- IDC_SIZENS - Установка размеров курсором, указывает на север и юг
- IDC_SIZEALL - Установка размеров курсором, указывает на север, юг, восток, и запад
- IDC_NO - Курсор "Нет"
- IDC_APPSTARTING - Курсор запуска приложения (стрелка и песочные часы)
- IDC_HELP - Курсор справки (стрелка и знак вопроса)
- IDI_APPLICATION - Пиктограмма приложения
- IDI_HAND - Пиктограмма с сигналом "Стоп"
- IDI_QUESTION - Пиктограмма со знаком вопроса
- IDI_EXCLAMATION - Пиктограмма со знаком восклицания
- IDI_ASTERISK - Пиктограмма со звездочкой (буква "i" в круге)
- IDI_WINLOGO - Пиктограмма с логотипом Windows
piconinfo
Указывает на структуру ICONINFO. Функция заполняет члены структуры.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения отличная от нуля и функция заполняет элементы определяемой структуры ICONINFO.Если функция не выполняет задачу, величина возвращаемого значения нулевая. Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
Функция GetIconInfo создает точечные рисунки для членов hbmMask и hbmColor структуры ICONINFO. Вызывающая прикладная программа должна управлять этими точечными рисунками и удалять их, когда они больше не нужны.Смотри также
CreateIcon, CreateIconFromResource, CreateIconIndirect, DestroyIcon, DrawIcon, DrawIconEx, ICONINFO, LoadIcon, LookupIconIdFromDirectoryРазмещение и совместимость GetIconInfo
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция LoadIcon
(ЗагрузитьПиктограмму)
Функция LoadIcon загружает определяемый ресурс пиктограммы из исполняемого (.EXE) файла, связанного с экземпляром прикладной программы.
Синтаксис
HICON LoadIcon
(
HINSTANCE hInstance, // дескриптор экземпляра приложения
LPCTSTR lpIconName // строка с именем или идентификатор ресурса пиктограммы
);
Параметры
hInstanceИдентифицирует экземпляр модуля, исполняемый файл которого содержит пиктограмму, которая будет загружена. Этот параметр должен иметь значение ПУСТО (NULL), когда загружается стандартная пиктограмма.
lpIconName
Указывает на строку с символом нуля в конце, которая содержит название ресурса пиктограммы, которая будет загружена. Альтернативно, этот параметр может содержать идентификатор ресурса в младшем слове и нули в старшем слове. Используйте макрокоманду MAKEINTRESOURCE, чтобы создать это значение.
Чтобы использовать одну из предопределенных пиктограмм Windows, установите параметр hInstance в значение ПУСТО (NULL), а параметр lpIconName в одно из следующих значений:
- IDI_APPLICATION - Пиктограмма приложения по умолчанию.
- IDI_ASTERISK - Звездочка (используется в информационных сообщениях).
- IDI_EXCLAMATION - Восклицательный знак (используется в предупреждающих сообщениях).
- IDI_HAND - Пиктограмма, имеющая форму руки (используется в серьезных предупреждающих сообщениях).
- IDI_QUESTION - Вопросительный знак (используется в подсказках).
- IDI_WINLOGO - Логотип Windows.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - дескриптор недавно загруженной пиктограммы.Если функция не выполняет задачу, величина возвращаемого значения - ПУСТО (NULL). Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Замечания
LoadIcon загружает ресурс пиктограммы, только в том случае, если он не был загружен; иначе, функция получает дескриптор существующего ресурса. Функция ищет ресурс пиктограммы, которая наиболее соответствует для текущего дисплея. Ресурс пиктограммы может быть цветной или одноцветный точечный рисунок.LoadIcon может загрузить только пиктограмму, размер которой соответствует метрическим значениям системы SM_CXICON и SM_CYICON. Используйте функцию LoadImage, чтобы загружать пиктограммы, которые другого размера.
Смотри также
CreateIcon, LoadImage, MAKEINTRESOURCEРазмещение и совместимость LoadIcon
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод WinNT
Замечания по платформе Не имеется
Функция LookupIconIdFromDirectory
(ПодстановкаПиктограммыИзКаталога)
Функция LookupIconIdFromDirectory ищет среди пиктограмм или курсоров данные, которые лучше всего соответствует текущему устройству отображения.
Синтаксис
int LookupIconIdFromDirectory
(
PBYTE presbits, // адрес ресурса с данными
BOOL fIcon // внешний вид иконы или курсора
);
Параметры
presbitsУказывает на каталог данных пиктограммы или курсора. Так как эта функция не проверяет правильность данных ресурса, она может стать причиной ошибки общей защиты (GP) или возвращает неопределенное значение, если presbits указывает на не правильные данные ресурса.
fIcon
Определяет, что разыскивается, пиктограмма или курсор. Если этот параметр - ИСТИНА (TRUE), функция ищет пиктограмму; если параметр - ЛОЖЬ (FALSE), функция ищет курсор.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - целочисленный идентификатор ресурса для пиктограммы или курсора, которые лучше всего соответствуют текущему устройству отображения.Замечания
Файл ресурса типа RT_GROUP_ICON (RT_GROUP_CURSOR обозначающий курсоры) содержит данные пиктограммы (или курсора) в нескольких аппаратно-зависимых и не зависящих от устройства форматах. LookupIconIdFromDirectory ищет файл ресурса пиктограммы (или курсора), которые лучше всего соответствуют текущему устройству отображения и возвращает целочисленный идентификатор. Функции FindResource и FindResourceEx с этим идентификатором используют макрокоманду MAKEINTRESOURCE, чтобы определить ресурс в модуле.Каталог пиктограммы загружается из файла ресурса с типом ресурса RT_GROUP_ICON (или RT_GROUP_CURSOR для курсоров) и целочисленным значением названия ресурса для конкретной пиктограммы, которая будет загружена. LookupIconIdFromDirectory возвращает целочисленный идентификатор, который является названием ресурса пиктограммы, которая лучше всего соответствует текущему устройству отображения.
Функции LoadIcon, LoadCursor и LoadImage (в Windows 95) используют эту функцию, чтобы найти заданные данные ресурса для пиктограммы или курсора, которые лучше всего соответствуют текущему устройству отображения.
Смотри также
CreateIconFromResource, CreateIconIndirect, FindResource, FindResourceEx, GetIconInfo, LoadCursor, LoadIcon, LoadImage, LookupIconIdFromDirectoryEx, MAKEINTRESOURCEРазмещение и совместимость LookupIconIdFromDirectory
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Функция LookupIconIdFromDirectoryEx
(ПодстановкаПиктограммыИзКаталогаРасширеная)
[Теперь поддерживается Windows NT]
Функция LookupIconIdFromDirectoryEx ищет среди пиктограмм или курсоров данные, которые лучше всего соответствует текущему устройству отображения.
Синтаксис
int LookupIconIdFromDirectoryEx
(
PBYTE presbits, // адрес данных ресурса
BOOL fIcon, // флажок пиктограммы или курсора
int cxDesired, // желаемая ширина пиктограммы или курсора
int cyDesired, // желаемая высота пиктограммы или курсора
UINT Flags // флажки ресурса
);
Параметры
presbitsУказывает на каталог данных пиктограммы или курсора. Так как эта функция не проверяет правильность данных ресурса, она может стать причиной ошибки общей защиты (GP) или возвращает неопределенное значение, если presbits указывает на не допустимые данные ресурса.
fIcon
Определяет, что разыскиваются, пиктограмма или курсор. Если этот параметр - ИСТИНА (TRUE), функция ищет пиктограмму; если параметр - ЛОЖЬ (FALSE), функция ищет курсор.
cxDesired
Определяет желаемую ширину пиктограммы, в пикселях. Если этот параметр нулевой, функция использует метрическое значение системы SM_CXICON или SM_CXCURSOR.
cyDesired
Определяет желаемую высоту пиктограммы, в пикселях. Если этот параметр нулевой, функция использует метрическое значение системы SM_CYICON или SM_CYCURSOR.
Flags
Определяет комбинацию следующих значений:
Флажок Что он означает
LR_DEFAULTCOLOR Использует заданный по умолчанию формат цвета.
LR_MONOCHROME Создает одноцветную пиктограмму или курсор.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - целочисленный идентификатор ресурса для пиктограммы или курсора, который лучше всего соответствует текущему устройству отображения.Замечания
Файл ресурса типа RT_GROUP_ICON (RT_GROUP_CURSOR обозначает курсоры) содержит данные о пиктограмме (или курсоре) в нескольких аппаратно-зависимых и не зависящих от устройства форматах. LookupIconIdFromDirectoryEx ищет файл ресурса пиктограммы (или курсора), который лучше всего соответствует текущему устройству отображения и возвращает целочисленный идентификатор. Функции FindResource и FindResourceEx используют макрокоманду MAKEINTRESOURCE с этим идентификатором, чтобы определить ресурс в модуле.
Каталог пиктограммы загружается из файла ресурса с типом ресурса RT_GROUP_ICON (или RT_GROUP_CURSOR для курсоров) и целочисленным значением названия ресурса для конкретной пиктограммы, которая будет загружена. Функция LookupIconIdFromDirectoryEx возвращает целочисленный идентификатор, который является названием ресурса пиктограммы, которая лучше всего соответствует текущему устройству отображения.
Функции LoadIcon, LoadImage и LoadCursor используют эту функцию, чтобы найти данные заданного ресурса для пиктограммы или курсора, который лучше всего соответствует текущему устройству отображения.
Смотри также
CreateIconFromResourceEx, CreateIconIndirect, FindResource, FindResourceEx, GetIconInfo, LoadCursor, LoadIcon, LoadImage, LookupIconIdFromDirectory, MAKEINTRESOURCEРазмещение и совместимость LookupIconIdFromDirectoryEx
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Структуры пиктограмм
Нижеследующие структуры используются с пиктограммами.
ICONINFO
ICONMETRICS
Структура ICONINFO
Структура ICONINFO содержит информацию о пиктограмме или курсоре.
Синтаксис
typedef struct _ICONINFO
{
BOOL fIcon;
DWORD xHotspot;
DWORD yHotspot;
HBITMAP hbmMask;
HBITMAP hbmColor;
} ICONINFO;
Члены структуры
fIcon
Устанавливает, что определяет эта структура, пиктограмму или курсор. Значение ИСТИНА (TRUE) определяет пиктограмму; ЛОЖЬ (FALSE) определяет курсор.
xHotspot
Определяет x-координату острия ("горячей точки") курсора. Если эта структура определяет пиктограмму, острие - всегда в центре пиктограммы, а этот член игнорируется.
yHotspot
Определяет y-координату острия ("горячей точки") курсора. Если эта структура определяет пиктограмму, острие - всегда в центре пиктограммы, а этот член игнорируется.
hbmMask
Устанавливает точечный рисунок битовой маски пиктограммы. Если эта структура определяет черно-белую пиктограмму, эта битовая маска оформляется так, чтобы верхняя половина была битовая маска AND пиктограммы, а нижняя половина - битовая маска XOR пиктограммы. При этом условии, высота должна быть четной множителю два. Если эта структура определяет цветную пиктограмму, эта маска определяет только битовую маску AND пиктограммы.
hbmColor
Идентифицирует битовый образ цвета пиктограммы. Этот член может быть необязательный, если эта структура определяет черно-белую пиктограмму. Битовая маска AND члена структуры hbmMask применяется с флажком SRCAND по назначению; впоследствии, битовый образ цвета применяется (используя XOR) по назначению при помощи использования флажка SRCINVERT.
Смотри также
CreateIconIndirect, GetIconInfoРазмещение и совместимость ICONINFO
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Структура ICONMETRICS
Структура ICONMETRICS содержит масштабируемую метрику, связанную с пиктограммами. Эта структура используется функцией SystemParametersInfo, когда определяется действие SPI_GETICONMETRICS или SPI_SETICONMETRICS.
Синтаксис
typedef struct tagICONMETRICS {
UINT cbSize;
int iHorzSpacing;
int iVertSpacing;
int iTitleWrap;
LOGFONT lfFont;
} ICONMETRICS, FAR *LPICONMETRICS;
Члены структуры
cbSize
Устанавливает размер структуры, в байтах.
iHorzSpacing и iVertSpacing
Горизонтальное и вертикальное пространство, в пикселях, для каждой распложенной пиктограммы.
iTitleWrap
Флажок переноса заголовка на новую строку. Если этот член не нуль, заголовки пиктограмм автоматически переходят на новую строку. Если этот член нулевой, заголовки, не переходят на новую строку.
lfFont
Устанавливает шрифт, который используется для заголовков пиктограммы.
Смотри также
SystemParametersInfoРазмещение и совместимость ICONMETRICS
Windows NT Да
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл winuser.h
Уникод WinNT
Замечания по платформе Не имеется
Сообщения пиктограмм
Пиктограммами используются следующие сообщения.
WM_ERASEBKGND
WM_ICONERASEBKGND
WM_PAINTICON
Сообщение WM_ERASEBKGND
Прикладная программа отправляет сообщение WM_ERASEBKGND, когда фон окна должен быть стерт (например, когда окно изменяет размеры). Сообщение отправляется, чтобы приготовить аннулированную часть окна для перекрашивания.
Синтаксис
WM_ERASEBKGND
hdc = (HDC) wParam; // дескриптор контекста устройства
Параметры
hdcЗначение wParam. Идентифицирует контекст устройства.
Возвращаемые значения
Прикладная программа должна возвратить значение отличное от нуля, если оно стирает фон; иначе, оно должно возвратить нуль.Замечания
Функция DefWindowProc стирает фон при помощи использования кисти фона класса, определяемого членом hbrBackground структуры WNDCLASS. Если hbrBackground имеет значение ПУСТО (NULL), прикладная программа должна обработать сообщение WM_ERASEBKGND и стереть фон.
Прикладная программа должна возвратить значение отличное от нуля в ответ на WM_ERASEBKGND, если она обрабатывает сообщение и стирает фон; это означает, что никакое дальнейшее стирание не требуется. Если программа возвращает нуль, окно останется отмеченным для очистки. (Обычно, это обозначает, что элемент fErase структуры PAINTSTRUCT будет ИСТИНА (TRUE).)
Смотри также
BeginPaint, DefWindowProc, PAINTSTRUCT, WM_ICONERASEBKGND, WNDCLASSРазмещение и совместимость WM_ERASEBKGND
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Сообщение WM_ICONERASEBKGND
Сообщение WM_ICONERASEBKGND отправляется в свернутое окно, когда фон пиктограммы должен быть заполнен перед рисованием её. Окно получает это сообщение, только в том случае, если для окна определена пиктограмма класса; иначе, посылается WM_ERASEBKGND.
Синтаксис
WM_ICONERASEBKGND
hdc = (HDC) wParam; // дескриптор контекста устройства
Параметры
hdcЗначение wParam. Идентифицирует контекст устройства пиктограммы.
Возвращаемые значения
Прикладная программа должна возвратить значение отличное от нуля, если она обрабатывает это сообщение.Замечания
Функция DefWindowProc заполняет фон пиктограммы кистью фона класса родительского окна.Смотри также
DefWindowProc, WM_ERASEBKGNDРазмещение и совместимость WM_ICONERASEBKGND
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется
Сообщение WM_PAINTICON
Сообщение WM_PAINTICON отправляется в свернутое окно, когда должна быть изображена пиктограмма, но только в том случае, если прикладная программа, написана для Windows 3.x. Окно получает это сообщение, только в том случае, если для окна определена пиктограмма класса; иначе, вместо него посылается WM_PAINT.
Синтаксис
WM_PAINTICON
Параметры
У этого сообщения нет параметров.Возвращаемые значения
Прикладная программа должна возвратить нуль, если она обрабатывает это сообщение.Замечания
Функция DefWindowProc рисует пиктограмму класса. Для совместимости с Windows 3.x, wParam должен быть ИСТИНА (TRUE). Однако это значение не имеет никакого значения.Смотри также
DefWindowProc, WM_ICONERASEBKGND, WM_PAINTРазмещение и совместимость WM_PAINTICON
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл winuser.h
Уникод Нет
Замечания по платформе Не имеется