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. ]



  • @lucker

    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ß


Anmelden zum Antworten