Hallo, einer muß ja mal anfangen
.
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:
case uMsg of
WM_INITDIALOG:
begin
if ParamCount > 0 then
begin
if ParamStr(1) = '/m' then
SendMessage(hDlg, WM_SIZE, SIZE_MINIMIZED, 0);
end;
Und in WM_SIZE:
Code:
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;
Nur das funktioniert nicht, das Icon erscheint zwar in der
TNA aber der Dialog ist noch zu sehen.
Was mache ich also falsch? Ich verstehe es nicht, denn in WM_SIZE bekommt er ja ein: ShowWindow(hDlg, SW_HIDE);.