Eigene Feldkontrolle bei Dialog...



  • Hallo,

    ich möchte gerne eine eigenen Feldkontrolle bei meinem Dialog einbauen.
    Ich habe die Felder mit Variablen verknüpft, die Elemente der Klasse sind.
    Da OnOK aber statisch ist, kanmn ich so natürlich nicht auf die Elemente zugreifen, aber wo der Dialog durch DoModal() aufgerufen wird...
    Das ist schon zu spät, weil der Dialog sich nicht schließen soll mit ungültigen Eingaben.

    Was kann ich jetzt machen?

    Danke im Voraus...

    MfG MAV



  • Ich verstehe nicht ganz.
    Wenn du vor dem Schließen kontrollieren willst ob alles Korrect eingegeben wurde dann Überschreibe OnOk()

    Wie ?
    Einfach auf den Button OK einen Doppelklick.
    Wenn du zum Schluß die OnOk-Funktion löscht dann schließ sich der Dialog nicht mehr.
    Hier kannst du eine IF oder was auch immer einbauen.



  • Hi,

    void CDialogConnect::OnOK() 
    {
        CDialog::OnOK();
    }
    

    Also es ist so...

    Ich habe in der Klasse die Membervariablen, aber wenn ich alles ausgefüllt habe und dann die einzelnen Daten abfrage ist es so, dass nicht die Daten angezeigt werden, die gerade drin sind, sondern die, die am Anfang festgelegt worden sind:

    CDialogConnect::CDialogConnect(CWnd* pParent /*=NULL*/)
        : CDialog(CDialogConnect::IDD, pParent)
    {
        //{{AFX_DATA_INIT(CDialogConnect)
        m_IP = _T("0.0.0.0");
        m_Port = 2000;
        m_Username = _T("Benutzername");
        //}}AFX_DATA_INIT
    
    }
    

    m_IP m_Port und m_Username sind mit den Edit-Felder verbunden und genau diese frage ich auch in OnOK() ab.

    Aber dort sind sie halt 0.0.0.0 2000 und Benutzername, egal was der Benutzer da einträgt. 😞

    mfG MAV



  • Hi,
    probiere es mal mit einem UpdateData(TRUE); in OnOk(), damit holst Du die Daten vom Bildschirm in den Speicher. Danach müsste es passen.

    mfg
    MacLittle



  • Jaaa, das funktioniert wunderbar. 🙂

    Vielen Dank! ^^


Anmelden zum Antworten