Кнопки, которые рисует родительское окно - часть 2
Приведем назначение отдельных полей структуры DRAWITEMSTRUCT.
Имя поля | Описание |
CtlType | Тип органа управления. Может принимать следующие значения: ODT_BUTTONODT_BUTTON - кнопка; ODT_COMBOBOXODT_COMBOBOX - орган COMBOBOX (рассмотрим позже); ODT_LISTBOXODT_LISTBOX - орган LISTBOX (рассмотрим позже); ODT_MENUODT_MENU - меню |
CtlID | Идентификатор органа управления. Не используется для меню |
itemID | Идентификатор строки для органов COMBOBOX, LISTBOX или меню |
itemAction | Действия, которые необходимо выполнить при изображении органа управления. Определен в виде отдельных битовых флагов: ODA_DRAWENTIREODA_DRAWENTIRE - требуется перерисовать весь орган управления; ODA_FOCUSODA_FOCUS - этот бит устанавливается в 1, если орган управления получил или потерял фокус ввода, новое состояние органа управления можно узнать, проанализировав содержимое поля itemState; ODA_SELECTODA_SELECT - изменилось состояние органа управления (он стал включенным, выключенным или неактивным), для уточнения состояния необходимо использовать поле itemState |
itemState | Вид, в котором необходимо изобразить орган управления. Определен в виде отдельных битовых флагов: ODS_CHECKEDODS_CHECKED - выбрана строка меню (этот бит используется только для меню); ODS_DISABLEDODS_DISABLED - орган управления неактивен; ODS_FOCUSODS_FOCUS - орган управления получил фокус ввода; ODS_GRAYEDODS_GRAYED - строка меню должна быть изображена серым цветом (этот бит используется только для меню); ODS_SELECTEDODS_SELECTED - орган управления выбран |
hwndItem | Для кнопок, органов управления COMBOBOX и LISTBOX это поле содержит идентификатор окна. Для меню это поле содержит идентификатор меню |
hDC | Контекст устройства, который необходимо использовать для рисования органа управления |
rcItem | Прямоугольные границы органа управления, внутри которого его необходимо нарисовать |
itemData | Используется только для органов управления COMBOBOX и LISTBOX |