|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Creating an Icon
To use an icon, your application must get the handle of the icon. The following example shows how to create two different icon handles: one for the standard exclamation icon and one for a custom icon included as a resource in the application's resource-definition file.
HICON hIcon1; // icon handle HICON hIcon2; // icon handle // Create a standard question icon. hIcon1 = LoadIcon(NULL, IDI_QUESTION); // Create a custom icon based on a resource. hIcon2 = LoadIcon(hinst, MAKEINTRESOURCE(460)); // Create a custom icon at run time.
An application should implement custom icons as resources and should use the LoadIcon or LoadImage function, rather than create the icons at run time. This approach avoids device dependence, simplifies localization, and enables applications to share icon bitmaps. However, the following example uses CreateIcon to create a custom icon at run time, based on bitmap bitmasks; it is included to illustrate how the system interprets icon bitmap bitmasks.
HICON hIcon3; // icon handle // Yang icon AND bitmask BYTE ANDmaskIcon[] = {0xFF, 0xFF, 0xFF, 0xFF, // line 1 0xFF, 0xFF, 0xC3, 0xFF, // line 2 0xFF, 0xFF, 0x00, 0xFF, // line 3 0xFF, 0xFE, 0x00, 0x7F, // line 4 0xFF, 0xFC, 0x00, 0x1F, // line 5 0xFF, 0xF8, 0x00, 0x0F, // line 6 0xFF, 0xF8, 0x00, 0x0F, // line 7
0xFF, 0xF0, 0x00, 0x07, // line 8 0xFF, 0xF0, 0x00, 0x03, // line 9 0xFF, 0xE0, 0x00, 0x03, // line 10 0xFF, 0xE0, 0x00, 0x01, // line 11 0xFF, 0xE0, 0x00, 0x01, // line 12 0xFF, 0xF0, 0x00, 0x01, // line 13 0xFF, 0xF0, 0x00, 0x00, // line 14 0xFF, 0xF8, 0x00, 0x00, // line 15
0xFF, 0xFC, 0x00, 0x00, // line 16 0xFF, 0xFF, 0x00, 0x00, // line 17 0xFF, 0xFF, 0x80, 0x00, // line 18 0xFF, 0xFF, 0xE0, 0x00, // line 19 0xFF, 0xFF, 0xE0, 0x01, // line 20 0xFF, 0xFF, 0xF0, 0x01, // line 21 0xFF, 0xFF, 0xF0, 0x01, // line 22 0xFF, 0xFF, 0xF0, 0x03, // line 23
0xFF, 0xFF, 0xE0, 0x03, // line 24 0xFF, 0xFF, 0xE0, 0x07, // line 25 0xFF, 0xFF, 0xC0, 0x0F, // line 26 0xFF, 0xFF, 0xC0, 0x0F, // line 27 0xFF, 0xFF, 0x80, 0x1F, // line 28 0xFF, 0xFF, 0x00, 0x7F, // line 29 0xFF, 0xFC, 0x00, 0xFF, // line 30 0xFF, 0xF8, 0x03, 0xFF, // line 31
0xFF, 0xFC, 0x3F, 0xFF}; // line 32 // Yang icon XOR bitmask BYTE XORmaskIcon[] = {0x00, 0x00, 0x00, 0x00, // line 1 0x00, 0x00, 0x00, 0x00, // line 2 0x00, 0x00, 0x00, 0x00, // line 3 0x00, 0x00, 0x00, 0x00, // line 4 0x00, 0x00, 0x00, 0x00, // line 5 0x00, 0x00, 0x00, 0x00, // line 6 0x00, 0x00, 0x00, 0x00, // line 7
0x00, 0x00, 0x38, 0x00, // line 8 0x00, 0x00, 0x7C, 0x00, // line 9 0x00, 0x00, 0x7C, 0x00, // line 10 0x00, 0x00, 0x7C, 0x00, // line 11 0x00, 0x00, 0x38, 0x00, // line 12 0x00, 0x00, 0x00, 0x00, // line 13 0x00, 0x00, 0x00, 0x00, // line 14 0x00, 0x00, 0x00, 0x00, // line 15
0x00, 0x00, 0x00, 0x00, // line 16 0x00, 0x00, 0x00, 0x00, // line 17 0x00, 0x00, 0x00, 0x00, // line 18 0x00, 0x00, 0x00, 0x00, // line 19 0x00, 0x00, 0x00, 0x00, // line 20 0x00, 0x00, 0x00, 0x00, // line 21 0x00, 0x00, 0x00, 0x00, // line 22 0x00, 0x00, 0x00, 0x00, // line 23
0x00, 0x00, 0x00, 0x00, // line 24 0x00, 0x00, 0x00, 0x00, // line 25 0x00, 0x00, 0x00, 0x00, // line 26 0x00, 0x00, 0x00, 0x00, // line 27 0x00, 0x00, 0x00, 0x00, // line 28 0x00, 0x00, 0x00, 0x00, // line 29 0x00, 0x00, 0x00, 0x00, // line 30 0x00, 0x00, 0x00, 0x00, // line 31
0x00, 0x00, 0x00, 0x00}; // line 32 hIcon3 = CreateIcon(hinst, // application instance 32, // icon width 32, // icon height 1, // number of XOR planes 1, // number of bits per pixel ANDmaskIcon, // AND bitmask XORmaskIcon); // XOR bitmask
To create the icon, CreateIcon applies the following truth table to the AND and XOR bitmasks.
AND bitmask XOR bitmask Display 0 0 Black 0 1 White 1 0 Screen 1 1 Reverse screen
Before closing, your application must use DestroyIcon to destroy any icon it created by using CreateIconIndirect. It is not necessary to destroy icons created by other functions.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Создание Иконы
Для того, чтобы использовать икону, ваше приложение должно получить ручку иконы. Следующий пример показывает как, чтобы создавать две других иконных ручки: за стандартной иконы восклицания и за заказной иконы включенной как ресурс в прикладном ресурсе-определении файла.
HICON hIcon1; // иконная ручка HICON hIcon2; // иконная ручка // Создайте стандартную вопросную икону. hIcon1 = LoadIcon(НЕДЕЙСТВИТЕЛЬНЫЙ, IDI_QUESTION); // Создайте заказную икону основанную в ресурсе. hIcon2 = LoadIcon(hinst, MAKEINTRESOURCE(460)); // Создайте заказную икону во времени выполнения.
Приложение должно осуществлять заказные иконы как ресурсы и должно использовать LoadIcon или функция LoadImage а не создает иконы во времени выполнения. Этот метод избегает зависимости устройства, упрощает локализацию и позволяет, чтобы распространять иконные побитовые отображения. Тем не менее, следующий пример использует CreateIcon, чтобы создавать заказную икону во времени выполнения, основанную в побитовом отображении bitmasks; включено, чтобы иллюстрировать как система интерпретирует иконное побитовое отображение bitmasks. 0x00, 0x00, 0x00, 0x00}; // линия 32 hIcon3 = CreateIcon(hinst, // прикладной пример 32, // иконная ширина 32, // иконная высота 1, // число XOR планирует 1, // количество битов за пиксель ANDmaskIcon, // И bitmask XORmaskIcon); // XOR bitmask
Для того, чтобы создавать икону, CreateIcon прилагает следующий стол истины к И и bitmasks XOR.
И bitmask XOR bitmask Показ 0 0 Черные 0 1 Белые 1 0 Экрана 1 1 Обратных экрана
Перед закрытием, ваше приложение должно использовать DestroyIcon, чтобы уничтожать любую икону, которую он создан использованием CreateIconIndirect. Нет необходимости уничтожать иконы созданные другими функциями.
|
|
|
|
| |