Zum Inhalt springen

MFC: Editfeld mit untergeordneten Dlg verschwindet bei return!?


Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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

Geschrieben

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

Geschrieben

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. :)

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...