2009-04-09 7 views
0

Ich kann einen setfocus und setcapture mit einem Umschaltmechanismus aufrufen und in OnLButtonDown sicherstellen, dass die Nachricht nicht weitergeleitet wird, aber das scheint in dem Moment fehlzuschlagen, in dem Sie den Mauszeiger verlassen. Gibt es eine Möglichkeit, sicherzustellen, dass das Fenster, das Capture und Fokus hat, nicht aufgibt?Fixieren von Fokus und Capture auf ein bestimmtes Fenster

+0

sollten Sie einfach nicht .... –

+0

In diesem speziellen Fall ist es für einen Farb-Sampler. –

Antwort

2

Für eine Farbauswahl versuchen Sie this article auf Farben von überall auf dem Bildschirm zu erhalten.

This one ist ein vollständigeres Dienstprogramm, lassen Sie Sie tun, was Sie wollen. Der Unterschied besteht in der Erfassung von Stopps bei einer Tastenkombination [Alt + Strg + P], bei der Sie bei einem Klick anhalten möchten.

In der zweiten Verbindung, die folgende Funktionsaufrufe für Sie nützlich sein:

SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 
RegisterHotKey(m_hWnd, 0x1FEB, MOD_CONTROL | MOD_ALT, 0x50); 

Die erste hält das Fenster aktiv, und das zweite Register Alt + Strg + P (Und wenn das gedrückt wird, die Fenster wird ein WM_HOTKEY Ereignis erhalten, wo Sie aufhören können, Farben zu erfassen). Leider können Sie RegisterHotKey nicht mit den Maustasten verwenden. Sie werden in SetWindowsHookEx suchen

Mit SetWindowsHookEx können Sie sicherstellen, dass Ihre Anwendung Ereignisse auch ohne Fokus empfängt. Rufen Sie SetWindowsHookEx mit dem Hook "WH_MOUSE" zusammen mit einer Mouse Procedure auf.

Es ist in diesem Verfahren erhalten Sie die Maus Nachricht, zu stoppen erfassen, wo die Maus bewegt (sperren Sie die Farbe), und verwenden Sie SetWindowPos, um Ihr Fenster an die Spitze zu bewegen. Heben Sie dann Ihre Registrierung mit UnhookWindowsHookEx auf.

Das ist ziemlich viel Zeug, das Sie vielleicht lernen müssen, aber alle MSDN Seiten, die ich Ihnen verlinkt habe, haben viele Informationen, die Ihnen helfen sollten, ganz zu schweigen davon, ob Sie bereit sind, sich mit einem zu begnügen Tastenkombination statt der zweite Link ist perfekt für Sie.

Hoffe, dass hilft.

Verwandte Themen