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