feststellen ob Objekt mit Eingabemöglichkeit den Focus hat
-
Kann mann irgendwie testen ob gerade eine Eingabe über die Tastatur möglich ist bzw. entgegengenommen werden kann vom aktiven Fenster ?
-
Die Funktion SetFocus gibt dir immer das Handle der Fensters zurück, dass vorher das Handle hatte. Das heisst du musst nur überprüfen ob das Handle dem dem du mit SetFocus den Fokus geben willst gleich dem Handle ist, das SetFocus zurückliefert.
Hier ein Beispiel:
if(SetFocus(GetDlgItem(hDlg, ID_EDIT))==GetDlgItem(hDlg, ID_EDIT)){ MessageBox(0, "hatte Focus", 0, 0);
Du solltes diesen Code nicht von einem Button aufrufen (zum Testen zum Bsp) da in dem Moment wo du auf den Button drückst das Edit (s.o) den Fokus ja verliert.
viel Spass
cu para
-
Danke, aber das meinte ich nicht so ... ich meinte ob man feststellen kann ob gerade ein Fenster aktiv ist in dem man Text eingeben kann. Ich hab vor Tastendrücke aus dem Hintergrund heraus zu Simulieren, blos wenn keine Ausgabe auf dem Bildschirm erfolgt dann ist der Tastaturpuffer irgendwann voll und es piept nur noch.
-
Naja, auf jeden Fall bekommst du durch GetFocus() das Handle des Fensters bekommen. Ist der Focus nicht in deinem Prozess, dann musst du AttachThreadInput() verwenden. Wenn du dazu ein BEispiel suchst, dann benutz mal die Suchfunktion im BCB-Forum (keine Angst - ist kein VCL).
[ Dieser Beitrag wurde am 12.02.2003 um 00:00 Uhr von WebFritzi editiert. ]
-
Du könntest zusätzlich noch überprüfen, ob das entsprechende Fenster den Cusor IDC_IBEAM hat.
-
Hallo WebFritzi, ich wünsche dir eine gute Nacht.
-
*lol* Ich dir auch, Sarah.