Datenaustausch zwischen zwei Dialogen



  • Es ist eine Ausgabe, die man nachträglich noch editieren können soll, also quasi beides, readonly ist daher nicht erwünscht. Klappt ja nun

    Vielen Dank an alle!



  • HerrMaier schrieb:

    Ah ok, habs. Da ich nur das CEdit-Feld drin hatte, war der natürlich als Fokus.

    Hab ein static-text hinzugefügt und in den properties tabstop true, wenn tabstop meines cedit feldes false ist, funktionierts.

    Also hat er doch am Fokus rumgespielt. Normalerweise hat die Ok-Schaltfläche die 1 und die Cancel-Schaltfläche die 2. Fügt man ein Editfeld hinzu würde es die 3 bekommen und damit wäre das Problem erst gar nicht entstanden.


  • Mod

    Oder in OnInitDialog, SetFocus auf das Edit Control. SetSel(0,0) und return FALSE!



  • Martin Richter schrieb:

    Oder in OnInitDialog, SetFocus auf das Edit Control. SetSel(0,0) und return FALSE!

    Wenn er im Ressourcen-Editor kein WS_TABSTOP findet wird er wohl kaum was in OnInitDialog gemacht haben können. Außerdem hat er die Controlvariable gelöscht.


  • Mod

    AndyDD schrieb:

    Martin Richter schrieb:

    Oder in OnInitDialog, SetFocus auf das Edit Control. SetSel(0,0) und return FALSE!

    Wenn er im Ressourcen-Editor kein WS_TABSTOP findet wird er wohl kaum was in OnInitDialog gemacht haben können. Außerdem hat er die Controlvariable gelöscht.

    Ich wollte nur erläutern wie man ohne Markierung den Focus dennoch in ein Edit Control setzen kann.



  • Das mit dem leeren statischen Text erscheint mir nicht als guter Stil, wenns für dich als Hobbymensch ausreicht, lass es so.

    Allerdings empfehle ich folgende Methode:

    Generell für jedes Element, egal ob Button, Edit, usw immer eine Membervariable anlegen.

    Da du in deiner cpp des zweiten Dialogs keine OnInit drin hast, mach eine rein. Füge deiner header unter protected

    virtual BOOL OnInitDialog();
    

    hinzu. Dann kopiere folgendes in deine cpp unter den Kommentar CmeinDlg message handlers:

    // CmeinDlg message handlers
    
    BOOL CmeinDlg::OnInitDialog()
    {
    
    	CDialogEx::OnInitDialog();
    
    /*	// setz Fokus auf das Eingabefeld
    	m_cedit.SetFocus();							
    	m_cedit.SetSel(0,0); // so wird zwar nichts markiert, allerdings steht der Cursor auf Anfang
    	return FALSE;
    	*/
    	// daher besser:
    
    	m_cedit.SetFocus();	
    	int length = m_cedit.GetWindowTextLengthW();
    	m_cedit.SetSel(length, length);  // setzt Cursor hinter das letzte Zeichen
    
    	return FALSE;
    }
    

    Hab alles angepasst, kannst einfach c&p. Hier spielt deine Tabstop-Einstellungen auch keine Rolle mehr.

    Grüße



  • Also, ich verstehe diese ganze Diskussion jetzt nicht so ganz. Wenn man einfach eine Dialogklasse erstellt und im Ressourcen-Editor ein Edit-Control zufügt, der dann ein Member zuweist, dann hat man dieses Verhalten nicht. Der Fokus liegt dann immer auf der Ok-Schaltfläche.


  • Mod

    AndyDD schrieb:

    Also, ich verstehe diese ganze Diskussion jetzt nicht so ganz. Wenn man einfach eine Dialogklasse erstellt und im Ressourcen-Editor ein Edit-Control zufügt, der dann ein Member zuweist, dann hat man dieses Verhalten nicht. Der Fokus liegt dann immer auf der Ok-Schaltfläche.

    Du hast recht, aber er hatte ja keinen Button!



  • Martin Richter schrieb:

    AndyDD schrieb:

    Also, ich verstehe diese ganze Diskussion jetzt nicht so ganz. Wenn man einfach eine Dialogklasse erstellt und im Ressourcen-Editor ein Edit-Control zufügt, der dann ein Member zuweist, dann hat man dieses Verhalten nicht. Der Fokus liegt dann immer auf der Ok-Schaltfläche.

    Du hast recht, aber er hatte ja keinen Button!

    Eben die Sache mit dem Button. Wenn man sagt: Mensch, lass den Button drin und dann ist gut, hilft ihm das nicht, da er ja scheinbar keinen Button braucht. Völlig gleich ob sein Vorhaben Sinn macht oder nicht, er wollte Support und kann es jetzt ohne Button realisieren



  • JeanClaudeMagnum schrieb:

    Martin Richter schrieb:

    AndyDD schrieb:

    Also, ich verstehe diese ganze Diskussion jetzt nicht so ganz. Wenn man einfach eine Dialogklasse erstellt und im Ressourcen-Editor ein Edit-Control zufügt, der dann ein Member zuweist, dann hat man dieses Verhalten nicht. Der Fokus liegt dann immer auf der Ok-Schaltfläche.

    Du hast recht, aber er hatte ja keinen Button!

    Eben die Sache mit dem Button. Wenn man sagt: Mensch, lass den Button drin und dann ist gut, hilft ihm das nicht, da er ja scheinbar keinen Button braucht. Völlig gleich ob sein Vorhaben Sinn macht oder nicht, er wollte Support und kann es jetzt ohne Button realisieren

    Das versteh ich jetzt nicht ganz. Welchen Button soll er wo drin lassen? Er hatte keinen zusätzlich. Warum sich dort die Reihenfolge geändert hat kann er nicht sagen und wir können es nicht hellsehen. Wenn man Support gibt sollte er sinnvoll sein und nicht irgendein Gefrickel soll es dann zufällig hinmurksen.
    Ich hab früher auch wenig Ahnung von der Programmiererei gehabt und hab durch dieses Forum sehr viel gelernt eben darum, weil hier viele Sachen sehr gut erklärt werden und nicht mit einer quick-and-dirty-Lösung nur für dieses eine spezielle Beispiel funktionieren. Der Lerneffekt ist dabei null.



  • also der Code von jean claud funktioniert zwar, aber ist nicht gut oder wie verstehe ich das?

    wie kann man das denn professioneller lösen?


  • Mod

    HerrMaier schrieb:

    wie kann man das denn professioneller lösen?

    😉
    Der Code ist gut und professionell. Nur überflüssig weil es unprofessionell ist einen Dialog ohne OK Schalter zu bauen 😉



  • Martin Richter schrieb:

    HerrMaier schrieb:

    wie kann man das denn professioneller lösen?

    😉
    Der Code ist gut und professionell. Nur überflüssig weil es unprofessionell ist einen Dialog ohne OK Schalter zu bauen 😉

    👍 genau das meine ich....



  • Ok 😃



  • AndyDD schrieb:

    Martin Richter schrieb:

    HerrMaier schrieb:

    wie kann man das denn professioneller lösen?

    😉
    Der Code ist gut und professionell. Nur überflüssig weil es unprofessionell ist einen Dialog ohne OK Schalter zu bauen 😉

    👍 genau das meine ich....

    Bei dem Punkt sind wir uns alle einig 😉


Anmelden zum Antworten