Kitty82 Geschrieben 15. April 2005 Geschrieben 15. April 2005 Hallo ihr, hoffe, ihr könnt mir wieder bei meinem Problem helfen. Und zwar hab ich einen Hauptdialog(Hdlg), auf dem ein untergeordneter Dialog(UDlg) lieg. Auf UDlg liegt ein Editfeld. Ich habe mein Programm so geschrieben, dass wenn der Benutzer den HDlg vergrößert/verkleinert das Editfeld sich dementsprechend anpasst. Mit OnSizing() zeichne ich das Editfeld immer neu, wenn der Benutzer die Größe ändert. Das sieht wie folgt aus: void AdjustCalibration::OnSizing(UINT fwSide, LPRECT pRect) { CRect pDlg, rDlg; int move=0; GetClientRect(&pDlg); rDlg = pDlg; //Passe untergeordnete Dialoge an tab1.MoveWindow(0, 0, pDlg.Width()-100, pDlg.Height()-20, TRUE); //tab1 = UDlg //prüfe, ob Benutzer die Randgröße verändert hat und passe dann die Größe der Elemente an if(Dlg != rDlg) { if(Dlg.right > rDlg.right) { move = Dlg.right - rDlg.right; xButton -= move; tab1.widthEdit -= move; } else { move = rDlg.right - Dlg.right; xButton += move; tab1.widthEdit += move; } if(Dlg.bottom > rDlg.bottom) { move = Dlg.bottom - rDlg.bottom; tab1.heightEdit -= move; } else { move = rDlg.bottom - Dlg.bottom; tab1.heightEdit += move; } } Dlg = rDlg; //CRect Dlg //Passe Button und Elemente von untergeordneten Dialog(en) an Hauptdialog an tab1.m_ctrlEdit.MoveWindow(tab1.xEdit, tab1.yEdit, tab1.widthEdit, tab1.heightEdit, TRUE); CDialog::OnSizing(fwSide, pRect); }[/PHP] Wenn ich einen Text eingebe in dem Editfeld, ist alles okay. Jedoch wenn ich die Return-Taste bestätige, verschwindet der komplette UDlg und somit auch das Editfeld. :confused: Weshalb? Meine OnPaint() sieht genauso aus wie die OnSizing(), nur dass hier dann CDialog::OnPaint() aufgerufen wird. Wenn ich dann den UDlg anklicke, erscheint er(Udlg) mit dem Editfeld wieder. Jedoch ist kein neuer Zeilenanfang im Editfeld. Kann mir jemand helfen? Schon mal n ganz dickes [b]Dankeschön[/b] im Voraus! Zitieren
SwordMaster Geschrieben 17. April 2005 Geschrieben 17. April 2005 ist jetzt nur so eine vermutung, aber überschreib mal die OnOK() Methode bei Untergeordnetem Dialog. ich hatte mal ein ähnliches problem bei einem TabCtrl(die verwenden ja auch untergeordnete Dialoge). also einfach virtual void OnOK(){}; in die Header Datei einfügen. Probiers einfach mal. Ciao Stefan Zitieren
Kitty82 Geschrieben 18. April 2005 Autor Geschrieben 18. April 2005 Danke erstmal für deinen Tipp. Habe das versucht, aber es klappt trotzdem nicht. Kann es auch damit zu tun haben, dass ich auf meinem Hauptdialog einen OK-Button habe und er deshalb bei return der untergeordnete Dialog verschwindet? Info: Beim Editfeld habe ich als Eigenschaft auch "Return möglich" aktiviert. Wäre für noch einen Tipp dankbar! Gruß Kitty Zitieren
Kitty82 Geschrieben 18. April 2005 Autor Geschrieben 18. April 2005 hmm... hab die Ursache gefunden. Beim Editfeld muss man "Mehrzeilig" und "Return möglich" aktivieren. :floet: Jetzt funktioniert es einwandfrei. Danke, dass ihr euch so bemüht habt mir zu helfen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.