![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать над каким итемом combobox а находится курсор? [Win95/98, WinME, NT4, Win2k, WinXP]
ctapik-net © (2002-01-29 14:29:00)Не нашел примера позволяющего при жвижении курсора выводить хинт для итема combobox. Другие компоненты не предлагать.
ctapik-net (2002-02-05 18:16:00) [1]Спасибо большое!
Andrey007 (2002-02-05 17:04:00) [2]1) Надо установить ComboBox.Style:=csOwnerDrawFixed (или csOwnerDrawVariable если надо рисовать содержимое выпадающего списка с разной высотой элемента).
2) Надо повесить обработчик события на OnDrawItem (если стиль csOwnerDrawVariable, то и на OnMeasureItem), и первые 2 строчки этого обработчика должны выглядеть так:
ComboBox.Canvas.FillRect(Rect);
ComboBox.Canvas.TextOut(Rect.Left+2,Rect.Top,ComboBox.Items[Index]);
3) Поскольку обычно элемент списка, над которым находится курсор, является подсвеченным, то будет работать следующая конструкция:
if odSelected in State then
begin
// а здесь Ваш хинт надо показывать
end;
ctapik-net (2002-02-03 13:46:00) [3]Хорошо, тогда как можно отловить движение мышки над частью, которая выскакивает при нажатии на кнопку? OnMouseMove не перехватывает.
Serghei (2002-01-29 14:43:00) [4]An application sends a CB_GETCURSEL message to retrieve the index of the currently selected item, if any, in the list box of a combo box.
CB_GETCURSEL
wParam = 0; // not used; must be zero
lParam = 0; // not used; must be zero
Parameters
This message has no parameters.
Return Values
The return value is the zero-based index of the currently selected item. If no item is selected, it is CB_ERR.
See Also
CB_SELECTSTRING, CB_SETCURSEL