PureBasic: Tooltip для PanelGadget

 

Иногда интересно пошарить по форумам код на пуревасике. Я занялся старым заброшенным проектом и получилось нечто. Самое сложное это то, что нифига толком не работает для этого злосчастного PanelGadget. Например не работает SetGadgetItemData и GetGadgetItemData - решил проблему. И многостраничный стиль гаджета тоже не работает.Осталось одно - добавить к значкам подсказки(tooltips). Четыре примера с четким и гладким быдлокодом не заработали. Чтение доков навели на следующее решение:

; структура, которая неизвестна компилятору
  Structure TCHITTESTINFO
      pt.POINT
  flags.u
 EndStructure
; тест расположения курсора
    tch.TCHITTESTINFO
    tch\pt\x=WindowMouseX(0)
    tch\pt\y=WindowMouseY(0)
    curi=SendMessage_(GadgetID(#panel),#TCM_HITTEST,0,@tch)
; curi = номеру закладки или -1


Поразительно, но номер закладки определяется! Осталось прилепить код из MouseClock и готов желаемый результат. Вылезла еще одна засада - при выборе закладки список обновляется только при наведении курсора мыши. Гугл подсказал еще одно решение:

RedrawWindow_(GadgetID(#grps), 0, 0, #RDW_INVALIDATE|#RDW_UPDATENOW) ; force redraw

На этом разработка закончилась, и я стал думать над другим внешним видом. Выложу проект попозже.

Комментарии