Помощь - Поиск - Пользователи - Календарь
Полная версия: Положение Tray Icon
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Free Pascal, Pascal ABC и другие
Bokul
Как узнать координаты положения Tray иконки моего приложения? NOTIFYICONDATA Structure, точнее uCallbackMessage этой структуры. Написано что надо юзать функции GET_X_LPARAM и GET_Y_LPARAM, но есть два препятствия:
1 сначала надо установить uVersion поле записи в NOTIFYICON_VERSION_4, но Fpc не знает о нем...
2 то же касается и GET_X_LPARAM и GET_Y_LPARAM - в неведении от Fpc..
volvo
Вопрос такой: нельзя поступить проще и определить хендл трея, а потом из него вытащить bounding box твоей иконки посылкой этому самому хендлу сообщения TB_GETITEMRECT Message ?
Bokul
Проблема в том, что хендл трей не имеет... по крайней мере не знаю как его бы заполучить...
volvo
Цитата
Проблема в том, что хендл трей не имеет
Да? Ну, тогда начни смотреть в сторону FindWindow("Shell_TrayWnd", NULL) + EnumChildWindows и посмотри, что такое "TrayNotifyWnd"/"ToolbarWindow32"...

Есть рабочий проект на MFC, который это делает, могу перенести его под WinAPI - только на С++, с Паскалем мороки больше, времени сейчас нет...
Bokul
Цитата
Есть рабочий проект на MFC, который это делает, могу перенести его под WinAPI - только на С++, с Паскалем мороки больше, времени сейчас нет...

Давай smile.gif
Цитата
вытащить bounding box твоей иконки посылкой этому самому хендлу сообщения TB_GETITEMRECT Message ?

Этому сообщению еще z-buffer иконки подавай...
volvo
Цитата
Этому сообщению еще z-buffer иконки подавай...
Ему надо порядковый номер иконки в трее... Это тоже решается.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.