PopupMenu schließt im TrayIcon nicht
-
Hallo,
folgendes Problem.
Ich habe eine Anwendung die erzeugt ein Trayicon mit einem Popupmenü.
Wenn ich auf das Icon geht und dann rechts klicke, geht das Popupmenü auf.
Wähle ich dann aber keinen Menüpunkt aus, sonder klicke außerhalb des
Popupmenüs, sollte es sich schließen. Das tut es aber nicht. es bleibt solange
offen, bis ich einen Menüpunkt anklicke.Warum ?
Wie bekomme ich das weg?
Gruß Mario
-
Hallo,
nun habe ich das viel zitierte Beispiel nachgebaut.NOTE on TrackPopupMenu
Many people have had troubles using TrackPopupMenu. .....
So - what should have been a simple:
Code:
TrackPopupMenu(hSubMenu, TPM_RIGHTBUTTON, pt.x,pt.y, 0, hDlg, NULL);
becomes
Code:SetForegroundWindow(hDlg);
TrackPopupMenu(hSubMenu, TPM_RIGHTBUTTON, pt.x,pt.y, 0, hDlg, NULL);
PostMessage(hDlg, WM_NULL, 0, 0);Refer to KB article "PRB: Menus for Notification Icons Don't Work Correctly" for more info.
im OnPopup-Ereignis des TrayIcons:
void __fastcall TConfigMain::PMTrayPopup(TObject *Sender) { POINT MausPosition; GetCursorPos(&MausPosition); SetForegroundWindow(ConfigMain->Handle); TrackPopupMenu(PMTray->Handle,TPM_RIGHTBUTTON,MausPosition.x,MausPosition.y,0,ConfigMain->Handle,NULL); PostMessage(ConfigMain->Handle, WM_NULL,0,0); } // <<<--- hier einen Breakpoint setzten und dann mit F7 verfolgen
Wenn ich nun ins Leere Klicke, dann verschwindet das Popup. ABER wenn ich auf einen Menüpunkt
des Popupmenüs klicke, dann erscheint das Popupmenü ein zweites mal.
Zu erst wird das Popup im obigen Quelltext erzeugt. Dann (nur wenn ich in das Popupmenü klicke) wird nach
Beendigung der OnPopup-Ereignisfunktion ein zweites Popup erzeugt.Kann man das unterbinden?
Gruß Mario