Dialog verstecken mit ShowWindow?
-
Wie kann ich einen Dialog beim starten unsichtbar machen ? In InitInstance und im Konstruktor der des CDialog's Child gibt es ein Runtime error ....
gruß
-
P.S.:
oder hat keinen Effekt
-
verstecken oder Unterdrücken?
Wenn er garnicht erscheinen soll, einfach in der InitInstance
das domodal rausnehmen.
Ansonsten ShowWindow(SW_HIDE); in der OnInitDialog();Devil
-
ja hatte ich auch schon probiert in OnInitDialog() aber klappt auch nicht ich denke am Source stimmt alles. Unterdrücken nicht möchte das Prog beim starten in die SystemTray minimieren aber entweder es klappt halt nicht oder ein Runtime-Error
Hier mal den Code den ich gerade verwende (welcher keinen Effekt brint...)
BOOL CSystemTrayDlg::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here NOTIFYICONDATA NID1; ShowWindow(SW_HIDE); // Tray Kram aus der FAQ ZeroMemory( &NID1, sizeof( NOTIFYICONDATA ) ); NID1.cbSize = sizeof( NOTIFYICONDATA ); NID1.hWnd = this->m_hWnd; NID1.uID = 1; NID1.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP; NID1.uCallbackMessage = WM_NOTIFICATION; NID1.hIcon = (HICON) LoadImage(AfxGetApp() ->m_hInstance,MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON,16,16,LR_SHARED|LR_DEFAULTCOLOR); NID1.szTip[64]='\0'; lstrcpyn(NID1.szTip,"Progname",sizeof(NID1.szTip)); Shell_NotifyIcon(NIM_ADD,&NID1); return TRUE; // return TRUE unless you set the focus to a control }
Komm nicht voran
gruß[ Dieser Beitrag wurde am 04.08.2002 um 20:41 Uhr von lucker editiert. ]
-
Also ich hätte so ein Projekt auf meiner HP.
http://veganza.host.sk/html/detail/modlessd/modlessd.htm
Sollte Dir weiterhelfen... sofern Du die grüne Schrift lesen kannst (Ich muß die mal auf weiß o.ä. umändern)
MfG veganza
-
vielen dank aber der source hilft mir nicht wirklich, da wenn ich das Icon in die Tray gesetzt habe sich mein programm beendet, schließ hänge ich ja in keiner schleife wie bei dlg.doModal()....
wenn ich jetzt zum beispiel eine while(1)....; setze dann werden die nachrichten meines programmes aber nicht mehr verarbeitet. jetzt bräuchte ich nicht einen befehl der die nachrichten schleife abfragt..
::GetMessage(),::Dispatchmessage(),::TranslateMessage();???gruß