Problem mit Propertypage und SetWizardMode



  • Ich rufe wie in den FAQ beschrieben einen Assistenten auf.
    Bekomme zwar auch diese Button zum Abbrechen bzw Hilfe,
    aber nie den "Fertig"-Button zu Gesicht. Der Hilfe-Button
    soll zudem in jedem Fall weg...

    Den muss man doch im Grunde auf dem letzten Registerblatt
    anzeigen lassen können?

    Habe zwar was von .SetWizardButtons(PSWIZB_FINISH) gelesen,
    aber wie auch immer ich das anwende, schmiert meine Anwendung ab.

    anzeiger.AddPage(&seite1); 
    anzeiger.AddPage(&seite2);
    anzeiger.AddPage(&seite3);
    
    anzeiger.SetWizardMode(); 
    anzeiger.DoModal();
    

  • Mod

    Du musst SetWizardButtons selbst aufrufen ab dem Moment in dem Du auch den Fertig Button sehen möchtest.
    Am besten du verpasst jeder Seite einen OnSetActive() Handler in dem Du dann auf der letzten Seite z.B.

    SetWizardButtons(PSWIZB_BACK|PSWIZB_FINISH);
    

    aufrufst. Die erste seite bekommt nur

    SetWizardButtons(PSWIZB_NEXT);
    

    und alle Seiten in der Mitte

    SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);
    


  • Wie übergebe ich dann aber "CPropertySheet anzeiger" so,
    dass ich damit den Aufruf für "SetWizardButtons" starten kann?
    Das ganze passiert ja in 3 unterschiedlichen Klassen?



  • Habe es bereits geschafft 🙂

    CPropertySheet *anzeiger = reinterpret_cast<CPropertySheet *>(GetParent());
    

    Nur, wie bekomme ich den Hilfebutton noch weg, den der Wizard beinhaltet.
    Bzw. bekomm ich irgendwie nen Handle drauf um den zu disablen?


  • Mod

    Auf jeder Page musst Du das PSP_HELP Flag löschen

    m_psp.dwFlags &= ~PSP_HASHELP;
    

    Das musst DU AUf jeder Deiner Seiten machen.


Anmelden zum Antworten