Stworzyłem sobie menu funkcją CreatePopupMenu()
, pokazuję je po kliknięciu PPM na ikonkę w trayu funkcją TrackPopupMenu()
ale ono nie chce zniknąć gdy klikam poza nim. Na msdnie nie było zbyt pocieszających informacji..
#To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible). If the current window is a child window, you must set the (top-level) parent window as the foreground window.
Rodzicem dla mojego okna jest HWND_MESSAGE
, i nie bardzo chcę ustawiać innego rodzica (bo niby jakiego w tym wypadku?). Jeśli nie ma innej opcji mogę utworzyć normalne okno bez rodzica bo i tak chciałem dodać jakieś ustawienia, ale jednak to nie jest rozwiązaniem problemu..
Na forum znalazłem rozwiązanie ale chciałbym wiedzieć co teraz dzieje się w moim kodzie:P
#SetForegroundWindow(hWnd);
Co ta funkcja oznacza dla message-only window, bo takie okno chyba z założenia nie może być oknem pierwszoplanowym?
#PostMessage(hWnd, WM_NULL, 0, 0);
Jaki sens jest w wysyłaniu wiadomości która tak naprawdę nic konkretnego nie robi oprócz tego, że jest wysyłana?:P