M
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