Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Положение Tray Icon

Автор: Bokul 22.07.2007 0:57

Как узнать координаты положения Tray иконки моего приложения? http://msdn2.microsoft.com/en-us/library/ms538121.aspx, точнее uCallbackMessage этой структуры. Написано что надо юзать функции GET_X_LPARAM и GET_Y_LPARAM, но есть два препятствия:
1 сначала надо установить uVersion поле записи в NOTIFYICON_VERSION_4, но Fpc не знает о нем...
2 то же касается и GET_X_LPARAM и GET_Y_LPARAM - в неведении от Fpc..

Автор: volvo 22.07.2007 1:40

Вопрос такой: нельзя поступить проще и определить хендл трея, а потом из него вытащить bounding box твоей иконки посылкой этому самому хендлу сообщения http://msdn2.microsoft.com/en-us/library/ms650749.aspx ?

Автор: Bokul 23.07.2007 8:43

Проблема в том, что хендл трей не имеет... по крайней мере не знаю как его бы заполучить...

Автор: volvo 23.07.2007 22:35

Цитата
Проблема в том, что хендл трей не имеет
Да? Ну, тогда начни смотреть в сторону FindWindow("Shell_TrayWnd", NULL) + EnumChildWindows и посмотри, что такое "TrayNotifyWnd"/"ToolbarWindow32"...

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

Автор: Bokul 23.07.2007 23:31

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

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

Этому сообщению еще z-buffer иконки подавай...

Автор: volvo 23.07.2007 23:45

Цитата
Этому сообщению еще z-buffer иконки подавай...
Ему надо порядковый номер иконки в трее... Это тоже решается.