Progress Bar Phänomen



  • Hallo zusammen

    Ich bin gerade an einer App, welche zwischen zwei Dialogen umschaltet. Zuerst erscheint ein Kontrolldialog, welcher eine Zeitlang läuft, danach erscheint ein Auswertungsdialog, welcher exakt über den Kontrolldialog gelegt wird (Kontrolldialog muss weiterbestehen). Auf dem Kontrolldialog erzeuge ich zwei Progressbars:

    Vol.Create( PBS_SMOOTH | WS_VISIBLE , CRect(24,122,216,137), this,IDC_PKOMP);
    	Komp.SetRange(0,255);
    	Komp.SetPos(0);
    
    Komp.Create( PBS_SMOOTH | WS_VISIBLE , CRect(24,187,216,202), this,IDC_PKOMP);
    	Komp.SetRange(0,255);
    	Komp.SetPos(0);
    

    Der Auswertungsdialog wird vom Kontrolldialog her erzeugt:

    //Position des aufrufenden Kontrollpanels ermitteln	
    	CRect rectClient;
    	GetWindowRect(rectClient);
    
    	m_dlgPASW = new CDlgPASW(this);
    	m_dlgPASW->Create(IDD_DLGPASW,this);
    			m_dlgPASW->SetWindowPos(&CWnd::wndTopMost,rectClient.left,rectClient.top,240,334,NULL);
    

    Soweit, so gut...Wenn ich jedoch nun zum Beispiel eine Fehlermeldung ausgebe (MessageBox) und diese über den Auswertungsdialog ziehe, erscheinen mir im Auswertungsdialog die zwei Progressbars vom Kontrolldialog, der ja UNTER dem Auswertungsdialog liegt. Ich kriege die Progressbars nur dann weg, wenn ich das Auswertungsfenster komplett neu zeichnen lasse...Wie kann ich jedoch den Fehler verhindern, ohne jedesmal das Fenster neu zu zeichnen, wenn sowas passiert?

    Danke

    Gruz

    Dan



  • naja verstecke doch die ganzen controls einfach vom darunter liegenden dialog solange der andere angezeigt wird dann kann das net passieren.

    Erzeug einfach ne ControlVariable und dann mit ShowWindow(SW_HIDE); bzw ShowWindow(SW_SHOW) um zu verstekcen oda wieda sichtbar zu machen sollte so ganz gut klappen. Hoffe das hilft dir ein weng.



  • Ja...Das hat geholfen...Warum in die Ferne schweifen, wenn das Gute liegt so nah?? 😃
    Hatte wohl n'Brett vor meinen Augen...

    Vielen Dank

    Gruz

    Dan


Anmelden zum Antworten