CComboBox ...
-
Wenn ich in das Edit-Feld der Combobox einen String eingebe und die Enter-Taste
drücke, wie hole ich mir diesen String ?
-
GetWindowText oder UpdateData mit einer Stringvariablen.
-
Die Combobox sitzt auf einer Dialogvorlage. Wenn ich Enter drücke
dann nimmt der OK-Handler die Nachricht un der Dialog ist verschwunden.
Kann man denn die Tastatur-Nachricht nicht über den OnKeyDown-Handler
leiten ?
-
Drop Down? Bei Drop Down dürfte die Eingabetaste nicht den Dialog schließen.
Jedenfalls tut es dies bei mir nicht.Was meinst Du mit holen? Die selektierten Daten kannst Du Dir mit GetCurSel bestimmen. Oder den Text eben wie estartu schrieb!
-
Also wenn ich im Editfeld editiere, und Eingabetaste drücke verschwindet
der Dialog, keine Ahnung ...
-
Kann man nicht im Dialog einen KeyDown-Handler dazwischen schalten ?
Ich habe es versucht, er wurde aber nicht aufgerufen.
-
Die Eingabetaste, löst im einem Dialog die OnOK-Funktion aus, man könnte diese
überschreiben, was aber nicht sinnvoll ist, da auch der OK-Button diese
Funktion auslöst.Fange die Eingabetaste mit PreTranslateMessage ab.
Trumfalke64
-
GeorgC++ schrieb:
Also wenn ich im Editfeld editiere, und Eingabetaste drücke verschwindet
der Dialog, keine Ahnung ...Klar, wenn die Dropdown Liste nicht offen ist. Das ist das normale Verhalten.
Was erwartest Du. Es gibt ja auch nichts zu übernehmen. Wenn Du Tab drückst verlässt die das Feld und der Wert steht sowieso in diesem Moment auch schon zur Verfügung.
Was erwartest Du denn für ein Verhalten?
-
Wenn ich einen Eintrag von der Combobox auswähle, und dieser im Eingabefeld erscheint, dann soll dieser nach Return weiterverarbeitet werden. Mit PreTranslateMessage ging dies sehr gut.
Jetzt aber noch eine andere Frage:
Der Handler-Funktion OnLButtonDown(UINT nFlags, CPoint point)
wird "point" und "nFlags" übergeben. Wenn ich mit PreTranslateMessage(MSG* pMsg)
WM_LBUTTONDOWN abfange, wie kann ich dann "point" abrufen.
Die MSG Struktur enthalt als Felder u.a. lParam und wparam, aber wie
kann ich aus diesen übergebenen Paramtern "point" ausrechnen ?
Auch PostMessage von CWnd können Parameter übergeben werden.
Allgemein weiss ich nicht, wie ich von den Parametern zu den
Werten der Prozedurschnittstelle ( der Handler-Funktion ) komme.
-
Deine UI-Logik verstehe ich nicht. Und was soll passieren, wenn er Tab drückt. Hat Enter in jedem Feld eine andere Bedeutung?
Was die Nachrichten und deren Inhalte betrifft rate ich Dir einfach mal nach WM_LBUTTONDOWN in der MSDN zu suchen. Du findest sofort :http://msdn.microsoft.com/en-us/library/ms645607(VS.85).aspx
Und dort steht für lParam:lParam
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
-
Soviel ich weiss ist Tab die Eingabetaste und nicht die Tabulatortaste.
Du kannst in meinen Beiträgen einfach Enter durch Eingabetaste ( Tab )
ersetzen.
-
Tab-Taste == Tabulator == VK_TAB
Enter-Taste == Eingabetaste == VK_RETURNIch würde Dir eher raten dann auf CBN_SELCHANGE oder CBN_KILLFOCUS zu reagieren. Das ist mit Sicherheit die bessere Strategie.
-
Martin, an der Stelle möchte ich mich entschuldigen, und sagen dass
ich im Haupstudium Informatik wegen gesundheitlichen Gründen gescheitert
bin. Heute nehme ich starke Medikamente die mich am Denken schwer behindern.
Vielleicht berücksichtigt Ihr das , wenn ich zusehr nerve !
-
GeorgC++ schrieb:
Vielleicht berücksichtigt Ihr das , wenn ich zusehr nerve !
Ich habe nicht angedeutet, dass Du nervst. Ich habe versucht Dinge richtig zu stellen und einen weiteren Ansatz zur Lösungzu bieten.