Автор: 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 - только на С++, с Паскалем мороки больше, времени сейчас нет...
Давай
Цитата
вытащить bounding box твоей иконки посылкой этому самому хендлу сообщения TB_GETITEMRECT Message ?
Этому сообщению еще z-buffer иконки подавай...
Автор: volvo 23.07.2007 23:45
Цитата
Этому сообщению еще z-buffer иконки подавай...
Ему надо порядковый номер иконки в трее... Это тоже решается.