Иногда интересно пошарить по форумам код на пуревасике. Я занялся старым заброшенным проектом и получилось нечто. Самое сложное это то, что нифига толком не работает для этого злосчастного 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
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
На этом разработка закончилась, и я стал думать над другим внешним видом. Выложу проект попозже.
Комментарии
Отправить комментарий