Dialog - (Standard-)Buttons deaktivieren (aka: Dialog - Wizard Button)



  • Habe einen Wizard erstellt und möchte den Button "Weiter" zunächst deaktivieren bis der User im ertsen Dialog etwas ausgefüllt hat. Ich habe den Wizard dadurch erzeugt, dass ich dem Projekt Eigenschaftsfenster hizugefügt habe. Wo finde ich nun die Button "Weiter", "Zurück" und "Hilfe" in meinem Quelltext?



  • resource.h !? 😉



  • Da steht folgendes:

    #define IDM_ABOUTBOX                    0x0010
    #define IDD_ABOUTBOX                    100
    #define IDS_ABOUTBOX                    101
    #define IDS_PROPSHT_CAPTION             103
    #define IDD_PROPPAGE1                   104
    #define IDD_PROPPAGE2                   105
    #define IDD_PROPPAGE3                   106
    #define IDD_PROPPAGE4                   107
    #define IDR_MAINFRAME                   128
    
    // Next default values for new objects
    // 
    #ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    #define _APS_NEXT_RESOURCE_VALUE        129
    #define _APS_NEXT_COMMAND_VALUE         40001
    #define _APS_NEXT_CONTROL_VALUE         1024
    #define _APS_NEXT_SYMED_VALUE           108
    #endif
    #endif
    

    Was genau muss ich nun schreiben wenn ich z.B. den "Weiter"-Button deaktivieren will?



  • GetDlgItem(IDC_DEINBUTTON)->EnableWindow(FALSE);
    alternativ
    ((CButton*)GetDlgItem(IDC_DEINBUTTON))->EnableWindow(FALSE);



  • Die Ids sind in den MFC Headern definier:

    #define ID_APPLY_NOW                    0x3021
    #define ID_WIZBACK                      0x3023
    #define ID_WIZNEXT                      0x3024
    #define ID_WIZFINISH                    0x3025
    #define AFX_IDC_TAB_CONTROL             0x3020
    

    Aus der Page bekommst Du mit GetParent das Sheet. Also müsste es heißen:

    GetParent()->GetDlgCtrl(ID_WIZNEXT)->EnableWindow(FALSE);
    


  • So hat es geklappt:

    GetParent()->GetDlgItem(ID_WIZNEXT)->EnableWindow(FALSE);
    

    Vielen Dank 👍

    Ist so etwas in der FAQ drin 😕



  • Gleich ja. 😃


Anmelden zum Antworten