zugriff auf ein control



  • 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