Dialog nach Start verstecken ??



  • Hallo Leute,

    Wie kann ich es hinbekommen das meine Dialoganwendung den Dialog beim Start erst gar nicht anzeigt ??

    Also ich möchte das der dialog nach dem Strat er gar nicht angezeigt wird, sondern erst nach einen bestimmten ereignis soll er wieder angezeigt werden.

    Habe mir gedacht das ich das mit HIDE und SHOW machen kann !! Nur ich weiß nicht wie, und wo ich meiner Dialog Anwendung sage das der Dialog HIDE sein soll !!

    Danke Coolsero

    PS: Der Dialog wird mit dlg.DOModal(); aufgerufen !!



  • Dieses DoModal musst du ändern:

    So war es:

    CMyDlg dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
       ...
    

    So musst dus machen:

    CMyDlg* dlg = new CMyDlg; 
    m_pMainWnd = dlg;
    dlg->Create(IDD_MYDLG); // ID der Dialog-Ressource
    

    Zum sichtbar machen:

    dlg->ShowWindow(SW_SHOW);
    

    Gruss Rico



  • Setze das ShowWindow(SW_HIDE) in die OnInitDialog, dann ist es beim start vorerst unsichtbar!

    Gruß
    :: NoName ::



  • @:: NoName ::

    Das habe ich schon versucht !! Leider ohne ergebnis !!

    @Xantos

    Danke für deine Hilfe !! Leider habe ich jetzt das Problem das egal wo ich den Befehl ShowWindow(SW_SHOW); setze, das der Dialog versteckt bleibt !!+

    Habe das ganze auch schon mit den Debug Modus vervolgt !! Das ShowWindow(SW_SHOW); wird ausgeführt !! Leider bleibt der Dialog versteckt !!!

    Was ich noch festgestellt habe ist, das die Anwendung jetzt nicht mehr als exe im Taskmanager unter Prozesse angezeigt wird !!!

    Gruß Coolsero



  • soviel ich erfahren konnte geht ein Hide nicht im OnInit, dafür
    aber ein Minimize. Und so habe ich es auch schon gelößt:

    ShowWindow(SW_MINIMIZE);

    in der OnInit Section, dann einen Timer mit 1 Sekunde erstellen
    und im OnTimer:

    ShowWindow(SW_HIDE);

    Irgendwann später dann wieder:
    ShowWindow(SW_RESTORE);

    Dann geschieht folgendes:
    Das Programm startet minimiert im Tray und verschwindet nach der 1 Sekunde.
    Das ist besser, als das es kurz aufblitzt.



  • du kannst den Timer auch noch kürzer setzen. Bei mir bitzt nix auf und das obwohl ich es nicht minimiert starte. 🙂



  • Hallo thenoname,

    Das mit dem ShowWindow(SW_MINIMIZE);
    habe ich gerade mal ausprobiert !! Leider tut sich bei mir da gar nichts !! Im Debug modus sagt er mir zwar das die Funktion richtig ausgeführt wurde aber es tut sich leider nichts !!

    Das einzige was funst ist mit dem Timer !! Habe in auf 1 Millisekunde gesetzt, aber leider sieht man das Fenster trozdem Kurz !!

    Hat noch einer ne Idee ???

    Danke Coolsero



  • Das SW_MINIMIZE macht der MFC ASSISTENT übrigens automatisch, wenn
    du ein neues Projekt erzeugst, und unter den Optionen das
    Häckchen
    bei "Dialog beim Starten minimieren" machst.
    Dann kannst du auch sehen, wo genau es stehen muss !!
    (Visual Studio 2003)

    Gruß
    snn


Anmelden zum Antworten