![]() |
Dialog minimiert sich nicht
Hallo, einer muß ja mal anfangen :mrgreen:.
Ich habe einen Dialog, der sichbeim Klicken auf den Minimierenbutton in die TNA verfüchtigt, dann wird auch das Icon angezeigt. Maximiere ich ihn wieder, wird auch das Icon aus der TNA gelöscht. Jetzt wollte ich das Programm mit einem Parameter starten, so dass es sich gleich beim Start in die TNA verzieht (, wenn man es in die Autostartgruppe packt). Folgender Code:
Code:
Und in WM_SIZE:
case uMsg of
WM_INITDIALOG: begin if ParamCount > 0 then begin if ParamStr(1) = '/m' then SendMessage(hDlg, WM_SIZE, SIZE_MINIMIZED, 0); end;
Code:
Nur das funktioniert nicht, das Icon erscheint zwar in der TNA aber der Dialog ist noch zu sehen.
WM_SIZE:
begin if wParam = SIZE_MINIMIZED then begin nid.cbSize := SizeOf(TNotifyIconData); nid.Wnd := hDlg; nid.uID := IDI_TRAY; nid.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; nid.uCallbackMessage := WM_SHELLNOTIFY; nid.hIcon := LoadIcon(hInstance,MAKEINTRESOURCE(1)); lstrcpy(nid.szTip, 'Delphi-Forum Code2UBB'); ShowWindow(hDlg, SW_HIDE); Shell_NotifyIcon(NIM_ADD, @nid); end; end; Was mache ich also falsch? Ich verstehe es nicht, denn in WM_SIZE bekommt er ja ein: ShowWindow(hDlg, SW_HIDE);. |
Moin Luckie,
lange nicht gesehen :mrgreen: Aber nun zu Deinem Problem. Versuchs mal ersatz Weise mit
Code:
(statt ShowWindow, versteht sich)
SetWindowLong(hDlg,GWL_STYLE,GetWindowLong(hDlg,GWL_STYLE) and not WS_VISIBLE);
Hab' ich gestern erst so benutzt (bis mir einfiel, dass ich das bei VCL ja einfacher haben kann) :x |
Tja, so geht es manchmal und dann triift man sich wo ganz anders wieder.
Aber zu deinem Vorschlag: Geht auch nicht. Ich verstehe es einfach nicht. |
Okay, dann will ich auch mal
Sende doch mal ein WM_SYSCOMMAND mit SC_MINIMIZE, testweise.
Vielleicht geht das ja? Ach ja: ich bin jetzt auch hier. *Zensiert* Erste Verfahrnung :mrgreen: |
Hallo, schön dich hier zu sehen.
Im Spotlight wurd emir geholfen, denke ich mal, ich habe es noch nicht ausprobiert. Aber so dringend ist es ja nun nicht mehr. Wenn man den Dialog mit CreateDialog aufruft, braucht man eine Nachrichtenschleife und da soll es funktionieren, wenn man es da einbaut. |
Ähem, vergiss meinen Vorschlag.
Der hätte eh nicht funktioniert. Hab´s gerade mal probiert. :( |
Hatte ich übrigens auch schon alles ausprobiert, bin ja kein Anfänger mehr :lol:.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz