Drawitem не получает вызова
я создал свой собственный пользовательский элемент управления CMyComboBox класса и его производных от CCombobox.
я добавил DrawItem в качестве виртуальной функции, но эта функция не вызывается при загрузке моего ежедневника
не могли бы вы сказать мне, как вызвать drawitem здесь
2) мне нужно объединить все функции combobox в этом классе
не могли бы вы пожалуйста, дайте мне некоторые предложения по этому вопросу
Что я уже пробовал:
oid CMyComboBox:: DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
ASSERT(lpDrawItemStruct - >CtlType == ODT_COMBOBOX);
LPCTSTR lpszText = (LPCTSTR) lpDrawItemStruct- & gt;itemData;
ASSERT(lpszText != NULL);
CDC dc;
dc. Attach(lpDrawItemStruct- & gt;hDC);
// Сохраните эти значения, чтобы восстановить их после завершения рисования.
COLORREF crOldTextColor = dc. GetTextColor();
COLORREF crOldBkColor = dc. GetBkColor();
// Если этот пункт выбран, установите цвет фона
// и цвет текста до соответствующих значений. Стирать
// прямая кишка, заполнив ее цветом фона.
если ((lpDrawItemStruct-&ГТ;itemAction &амп; ODA_SELECT) и усилитель; &
(lpDrawItemStruct- & gt;itemState & ODS_SELECTED))
{
dc.SetTextColor (:: GetSysColor(COLOR_HIGHLIGHTTEXT));
постоянного тока.SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
dc. FillSolidRect(& lpDrawItemStruct->rcItem,:: GetSysColor(COLOR_HIGHLIGHT));
}
еще
{
dc. FillSolidRect(& lpDrawItemStruct-> rcItem, crOldBkColor);
}
// Нарисуйте текст.
постоянного тока.То drawtext(
lpszText,
(int)_tcslen(lpszText),
& lpDrawItemStruct- & gt;rcItem,
DT_CENTER|DT_SINGLELINE|DT_VCENTER);
// Сбросьте цвет фона и цвет текста обратно на их место.
// изначальные значения.
dc. SetTextColor(crOldTextColor);
dc. SetBkColor(crOldBkColor);
постоянного тока.Отсоединить();
}