Endlosschleife der Message-Handler
-
Hallo Leute!
ich hab ein ganz seltsames Problem. Ich muss auf die Nachricht EN_SETFOCUS reagieren (USer klickt in ein Edit-Feld). Danach soll die Eingabe für das Feld scharf geschaltet werden, denn ein zweiter nichtmodaler Dialog steuert die Eingabe. Das klappt in einem andern Beispiel sehr gut, aber in diesem Dialog ruft er (hab ich aus dem Debugger erfahren) immer wieder den folgenden Meldungs-Handler
aufOnEnSetfocusEditChdlgCount()Die Haltemarke wird immerwieder angesteuert, was ich nicht verstehen, denn wenn der Focus einmal gesetzt ist, muss er doch nicht andauernd neu gesetzt werden?? Gibt es noch eine bessere Methode bzw. Nachricht, auf die man reagieren kann?
Danke, Ranger
-
Ich vermute mal, du hast in deinem Eventhandler irgendeinen Aufruf stehen, der den Fokus wieder neu setzt - zeig doch mal den Inhalt dieser Funktion.
-
Bitteschön
if(m_child_ptr) { m_child_ptr->edit_parent = (CEdit *)GetDlgItem(IDC_EDIT_CHDLG_COUNT); } else { m_child_ptr = new CNrInputDialog(this); m_child_ptr->check_Dlg = true; m_child_ptr->LS_Dlg = false; m_child_ptr->m_pParent_Check = this; m_child_ptr->Create(CNrInputDialog::IDD,this); m_child_ptr->ShowWindow(SW_SHOW); }Danke, Ranger
-
Hallo,
ich vermute mal, dass deine Entwicklungsumgebung den Focus bekommt weil der Haltepunkt gesetzt ist und wenn Du dann deine Anwendung wieder an klickst, bekommt das Edit-Feld wieder den Focus und somit wird wieder die Funktion aufgerufen! Und schon bist du in der Schleife!Ich würde anstatt den Haltepunkt vielleicht etwas in eine Datei schreiben oder so!
Ade
Walter