LONG biXPelsPerMeter; // 0 или необязательное значение разрешения по
// горизонтали
LONG MYPelsPerMeter; // 0 или необязательное значение разрешения по
// вертикали
DWORD biClrUsed; // Обычно 0, может быть меньше biBitCount
DWORD biClrImportant; // Обычно О } BITMAPINFOHEADER, *LPBITMAPINFOHEADER;
После структуры BITMAPINFOHEADER в формате DIB должна находиться та( лица цветов. Это — набор структур данных RGBQUAD, которые содержат код цве та RGB для каждого из цветов, применяемых в растровом изображении. В формат DIB должно быть представлено столько входов RGBQUAD, сколько вариантов цве тов находится в растровом изображении. Ниже приведено определение структур RGBQUAD:
typedef struct tagRGBQOAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved; } RGBQUAD;
В Windows предусмотрена альтернатива определению цветов растрового изображения с помощью кодов цвета RGB. Таблица цветов может представлять собой массив К разрядных целых чисел без знака. Каждое из этих чисел является индексом, реализованной в настоящее время логической палитры. Применение значений индексе палитры позволяет менять цвета растрового изображения путем смены палитры. Не сколько функций работы с форматом DIB включают параметр uUsage, значение которого может быть установлено равным DIB_PAL_COLORS, если таблица цветов содержит элемент палитры. Коды цветов RGB должны использоваться, если растровое изображение предназначено для хранения на диске и потенциального использования н каком-то другом типе устройства, которое может иметь другую цветовую разрешающую способность.
В листинге 13.2 приведен пример загрузки данных цвета из изображения DIB, затем вывода растрового изображения. В этом примере предполагается, что растре вое изображение формата DIB с именем PEN.BMP входит в состав файла описании: ресурса, как показано в листинге 13.1. Данные цвета из файла DIB считываются преобразуются в логическую палитру при обработке сообщения WM_CREATE. Это сложная процедура, поскольку в программе необходимо рассчитать, сколько значений цвета хранится вместе с растровым изображением. Обратите внимание, что логическая палитра создается в процессе обработки сообщения WM_CREATE, но не смотря на это она не реализуется до тех пор, пока не будет получено сообщении WM_PAINT.
Для вывода растрового изображения применяется функция SetDIBitsToDevice. Пр1 вызове этой функции должен быть задан указатель и на данные BITMAPINFO, и н; данные растрового изображения DIB. Последний параметр рассчитывается как смещение от начала данных BITMAPINFO, поскольку в данных ресурса шестнадцатеричные данные растрового изображения загружены непосредственно за окончанием дан ных цвета.
Листинг 13,2. Пример загрузки растрового изображения DIB
См. \local-sources\chapl3\tl3-02.txt
Пиктограммы
Пиктограммы — это небольшие растровые изображения, применяемые в Windows для визуального представления таких объектов, как приложения, файлы и каталоги. В системе Windows пиктограммы можно видеть во всех компонентах пользовательского интерфейса.
Использование пиктограмм
Приложения Windows 2000 и Windows 98 должны иметь по меньшей мере одну пиктограмму и поддерживать пиктограммы с тремя разными размерами: большую пиктограмму с 256 цветами (48x48), пиктограмму с 16 цветами (32x32) и малую пиктограмму с 16 цветами (16x16). Малая пиктограмма отображается, когда приложение свернуто; кроме того она присутствует в левом верхнем углу окна приложения. Большая пиктограмма отображается на рабочем столе и в представлениях объектов. Дополнительные пиктограммы должны быть созданы для каждого типа данных, поддерживаемых приложением.
Пиктограммы, как и растровые изображения, обычно создаются с использованием редактора изображений SDK Image Editor Win32 или редактора пиктограмм Visual C++. Затем эти пиктограммы можно ввести в файл описания ресурса приложения с помощью оператора ICON. Типичным примером использования пиктограмм является регистрация класса главного окна. В листинге 13.3 показано, как зарегистрировать класс окна с большой и малой пиктограммами.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.