CDialogBar zur Laufzeit laden



  • Hallo

    Ich öffne im CMainFrame::OnCreate eine CDialogBar. Ist es möglich, zur Laufzeit eine andere CDialogBar zu laden? Ich versuchte es mit ErsteDialogBar.DestroyWindow und anschliessendem ZweiteDialogBar.Create. Doch statt dem neuen Dialog habe ich lediglich ein grosses "Loch" an dieser Stelle gehabt.

    Wäre froh, wenn mir da jemand einen Tipp geben könnte.

    Vielen Dank!



  • Hallo

    nach dia.Create() mußt du auch dia.ShowWindow(SW_SHOWNORMAL) aufrufen.
    Du hast die Dia.Bar erzeugt, aber nicht angezeigt.

    mfg tomb



  • Hi Tomb

    Danke für deine Antwort. Leider liegt es nicht daran, ShooWindow habe ich auch schon aufgerufen.

    Ich zeige besser mal den besagten Code:

    AlterDialog.DestroyWindow();
    neuerDialog = new CNeuerDialog();
    if (!neuerDialog->Create(this, IDD_DIALOGNEU, CBRS_TOP,IDD_DIALOGNEU))
    {
        TRACE0("Symbolleiste konnte nicht erstellt werden\n");
        return -1;      // Fehler bei Erstellung
    }		
    neuerDialog ->SetBarStyle(neuerDialog->GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
    neuerDialog->ShowWindow(SW_SHOWNORMAL);
    


  • Hi

    Ist das der Original Code?!

    neuerDialog = new CNeuerDialog();
    

    Sollte es nicht so aussehen.

    CNeuerDialog* neuerDialog = new CNeuerDialog();
    

    tomb



  • Das war ein groooßer Denkfehler von mir. 👎

    Dies hast du bestimmt in der Header schon gemacht.

    tomb



  • Hi

    Die Deklaration des Pointers

    CNeuerDialog* neuerDialog;
    

    habe ich bereits im Header gemacht. Würde der Pointer nicht korrekt sein, dann gäbe es doch wohl schon beim compilieren einen Fehler. Daran dürfte es vermutlich nicht liegen.



  • War ne Minute zu spät 😃



  • Weiss niemand zu meinem Problem einen Tipp? Trotz des erneuten erstellens mit Create (liefert übrigens true zurück) wird der Dialog nicht sichtbar. ShowWindow bringt auch nichts.

    Vielen Dank!


Anmelden zum Antworten