tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von titanic
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
366
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DonCube DonCube ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    23
    Hey ho,
    Ich habe mehrere Reiter fest in meine View integriert. Ähnlich wie in Excel.
    In den Reitern sind Dialoge eingebaut. Ohne Rahmen ohne alles. Nun habe ich zwei Probleme.

    1. Wenn ich auf meinen Button übernehmen klicke, wird natürlich der eigens definierte Messagehandler für OnBnClicked aufgerufen. Soweit so gut, das macht er auch alles brav. Allerdings verschwindet der Dialog. Bzw er wird unsichbar und in den Vordergrund tritt die graue Fläche des Reiters.

    Wenn ich nur auf irgendwelche Elemente im Dialgog klicke, werden sie wieder sichbar. Boooaa Zauberei....Hmm ok mag sein, aber ich hoffe nicht, denn mich nervt es das sie immer einfach verschwinden.

    Nur um dann wieder aufzutauchen wenn ich z.B das Fenster maximiere, kurz den Tab wechsle und zurückkehre oder ähnliches mache. Dann sind sie wieder da, schön mit allen Daten, denn zerstört werden sie nicht.




    2. Wenn ich gaaaanz viele Tabs mache, so dass ich scrollen muss. Dann erscheinen oben rechts die Scrollpfeile. Scrollen kann ich auch. Nur leider verschiebt sich dann auch der Inhalt der Tabs (meine Dialoge). Das geht soweit, dass man ihn gar nicht mehr sieht.


    Vielleicht habt ihr ja ne Idee. Wäre sehr lieb.

    Grüße an alle.
     

  2. #2
    titanic titanic ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    60
    Hallo,

    vieleicht könnte das dir helfen:

    void CPropSheetFormView::OnSize(UINT nType, int cx, int cy)
    {
    ....
    CPropertyPage* pPage = m_pPropSheet->GetActivePage();
    m_pPropSheet->SetActivePage(pPage);//Die Pages werden neu geeichnet
    ....
    }

    danach waren alle Steuerelemente des Dialogs sichtbar

    pDlg->Invalidate();
    pDlg->UpdateWindow();

    Gruß titanic
    Geändert von titanic (09.06.07 um 12:14 Uhr) Grund: Dialog neu zeichnen?
    DonCube bedankt sich. 

  3. #3
    DonCube DonCube ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    23
    Hey ho Titanic,
    vielen Dank für Deine schnelle Antwort. Leider war ich am Freitag schon verreist und bin erst heute wiedergekommen. Habe deine Lösung sofort ausprobiert.

    Hat antandslos geklappt. Vielen Danke nochmal. Scheinbar ist es wichtig ein Invalidate();
    vor dem UpdateWindow(); auszuführen. Das war mir noch nicht bekannt.

    Ist es richtig das dort ein Erase ausgeführt wird Habe sowas ähnliches bei Debuggen gesehen.

    Wieder was gelernt.

    Nochmals danke und einen Pluspunkt fürs Renommee.

    Gruß
    DonCube
     

  4. #4
    langer1801 langer1801 ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Ort
    Bad Arolsen (Hessen)
    Beiträge
    556
    Hallo,

    mit UpdateWindow() zwingst du Windows dazu, das Fenster sofort auf den neuesten Stand zu bringen. Wenn aber keine Fensterregion für ungültig erklärt wurde, wird auch nichts neu gezeichnet.
    Mit Invalidate() erklärst du den gesamten Client-Bereich für ungültig. Allerdings hat diese Nachricht nur eine geringe Priorität, sodass einige Zeit vergehen kann, bis die ausgeführt wird. Deshalb -> siehe oben.
    Und wenn du Invalidate() ohne Parameter nutzt, wird automatisch als Parameter TRUE genutzt und die Funktion OnEraseBkgnd() ausgeführt. Willst du das nicht, mußt du Invalidate(FALSE) benutzen.

    Mfg

    langer
     

Ähnliche Themen

  1. [C++ WINAPI] Dialog "unsichtbar" -Hilfe?!
    Von radazong im Forum C/C++
    Antworten: 16
    Letzter Beitrag: 23.05.08, 15:44
  2. Antworten: 6
    Letzter Beitrag: 09.10.07, 20:42
  3. Link unsichtbar aber da
    Von sra im Forum CSS
    Antworten: 14
    Letzter Beitrag: 26.06.07, 07:36
  4. Antworten: 2
    Letzter Beitrag: 27.04.05, 20:10
  5. Programm in der Taskleiste ist unsichtbar? will aber net..
    Von Reticent im Forum VisualStudio & MFC
    Antworten: 6
    Letzter Beitrag: 21.04.04, 14:55