zugriff auf ein control



  • Hallo,
    ich habe eine check-box auf meinem Dialoga angelegt, jetzt die Frage wie ich von meinem source-code auf die checkbox zugreifen kann?
    gruesse
    joge



  • Du musst eine Membervariable für das Control anlegen, dann kannst du drauf zugreifen.



  • hallo,

    ja die meber variable habe ich bereits erstellt.
    Allerdings habe ich einen neuen source-code Haptialoges zurückgreifrn.
    Aber wie soll das gehen?



  • hallo,
    das ist leider etwas unverständlich was ich da zuletzt geschrieben habe. Ich moechte von einem zum Projekt neu hinzugefügten source code auf die member-Variable zugreifen. Den header, in der die member Variable deklariert ist, habe ich schon inkludiert!
    Aber wie lese ich jetzt diese variable aus?



  • trester schrieb:

    Allerdings habe ich einen neuen source-code Haptialoges zurückgreifrn.

    verstehe leider nicht was du meinst 😕



  • bin nicht ganz sicher ob ich dich richtig verstanden habe, aber du müsstest eventuell noch in der DoDataExchange deines Dialoges

    DDX_Control(pDX, IDC_CHECKBOX, m_ckBox);
    

    oder so ähnlich hinzufügen



  • hallo,
    ja das hat der Assistent bereits hinzugefügt:

    DDX_Control(pDX, IDC_CHECK_Ausgabe, m_COne_Destination);
    

    jetzt habe ich aber ein neues cpp.file dem Projekt hinzugefügt und möchte von diesem aus auf die check-box zugreifen, ich weiss aber nicht genau wie ich das machen soll.



  • mmmhhh, sowas hab ich noch nicht versucht...vielleicht geht das nur wenn man im neuen cpp eine Instanz der Dialogfeldklasse anlegt und damit auf das Control zugreift.



  • Jo würd ich auch sagen leg dir mal ne Instanz auf deine Dialogklasse an und dann kannste Dialogklasse->Checkbock = X; machen



  • hallo,
    ja das habe iach auch schon versucht bekomme dann aber immer folgende Fehlermeldungen beim Kompilieren:
    1.

    error C2065: 'IDD_SHP2OVLDB_DIALOG' : nichtdeklarierter Bezeichner

    Das bezieht sich auf die Dialogklasse von der im neuen cpp-file eine Instanz erzeugt wurde:

    class CSHP2OVLDBDlg : public CDialog
    {
    // Construction
    public:
    	CSHP2OVLDBDlg(CWnd* pParent = NULL);	// standard constructor
    
    // Dialog Data
    	//{{AFX_DATA(CSHP2OVLDBDlg)
    	enum { IDD = IDD_SHP2OVLDB_DIALOG };
    ....
    }
    

    und die zweite Fehlermeldung:
    2.

    error C2057: Konstanter Ausdruck erwartet

    Dieser Fehler zeigt ebenfalls auf den Wert

    IDD_SHP2OVLDB_DIALOG
    

    siehe oberen source code .



  • hallo,
    ich habe vergessen den ressourcen header einzubinden!!! 😉



  • hallo,
    jetzt allerdings kann ich nicht den aktuellen Wert auslesen. Die check box muestte den Wert "1" liefern, da sie aktiviert wurde. Es wird aber immer nur der Wer "0" angegeben.
    Warum? und wie lese ich den aktuellen Wert aus?



  • hast du schon gecheckt, ob die Auslesefunktion überhaupt aufgerufen wird?



  • kannst du das bitte näher erläutern bzw. habe ich das auch noch nicht so ganz verstanden. Wenn ich ja eine neue Instanz erzeuge bekomme ich ja logischerweise nicht die aktuellen Werte? Wie bekomme ich diese

    Verbindung

    ? bzw. wo und wie lese ich den aktuellen Wert aus?



  • Mit der Funktion

    static CWnd* GetActiveWindow( );
    

    klappts. Vielleicht habt ihr ja noch ne bessere Idee?


Anmelden zum Antworten