Wenn Ihr Tastaturformular den Fokus erhält, ist ein Teil der Nachricht das Handle des Fensters, das den Fokus verloren hat (wParam). Tun Sie, was Sie tun müssen und setzen Sie den Fokus zurück auf das Fenster, das den Fokus verloren hat.
EDIT: Siehe die Dokumentation auf WM_SETFOCUS
EDIT 2:
Sie können beim Erstellen eines benutzerdefinierten Formulars auch Folgendes verwenden:
%Vor%Um zu verhindern, dass Ihr Formular aktiviert wird (Fokus von der anderen Form aus). Wie ich bereits in meinem Kommentar erwähnt habe, sollten Sie wahrscheinlich Tasten ohne Fenster verwenden.
Die einzige Methode, die ich gesehen habe, um das zu tun, ist, das Fenster mit der virtuellen Tastatur EnableWindow(hWnd, FALSE)
zu deaktivieren.
Nun, wenn das Fenster deaktiviert ist, werden Sie keine Mausnachrichten erhalten, richtig? Sie müssen Optionen:
WM_SETCURSOR
. Es wird sogar an deaktivierte Fenster gesendet, und im übergeordneten Wort von lParam haben Sie die Kennung der ursprünglichen Nachricht (WM_LBUTTONDOWN, usw.). Die Koordinaten des Cursors können mit GetMessagePos()
. SetWindowsHookEx(WH_MOUSE, ...)
. Sie haben die volle Kontrolle über Ihre Mausnachrichten.