ComboBox & ATL & IE Toolbar
От: AlexKn  
Дата: 08.02.05 11:06
Оценка:
Пытаюсь сделать перерисовываемый ComboBox для тулбара IE, для этого нужно
получить текст при отработке каждой строки. Создаю combobox с такими стилями
CBS_DROPDOWNLIST | WS_VISIBLE | WS_CHILD | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS

Делаю на обработчике
LRESULT OnDrawItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
такой код
int selId;
if ((selId = lpDrawItemStruct->itemID) < 0)
{
return 0;
}
TCHAR tchBuffer [BUFFER];
if (::SendMessage (lpDrawItemStruct->hwndItem, CB_GETLBTEXT, selId,
(LPARAM) tchBuffer) == LB_ERR)
{
return 0;
}

DrawText(hDC,
tchBuffer,
strlen(tchBuffer),
&lpDrawItemStruct->rcItem,
DT_LEFT|DT_SINGLELINE|DT_VCENTER);

и получаю при работе тулбара вместо нормальных строк в комбике всякую гадость.
Тот же код в MFC проекте прекрасно работает. Если пытаюсь использовать код
LPCTSTR tchBuffer = (LPCTSTR) lpDrawItemStruct->itemData;
то это нормально работает под XP и вылетает под Win98. В чем тут грабля?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.