Archief - C++, kan maar niet controleren of mijn window focus heeft

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

FWP

Legacy Member
http://img180.imageshack.us/img180/2978/windowfocusprobleem.png

Ik heb een window hook aangemaakt voor een OpenGL toepassing die geen window mode heeft.

Tot zover alles goed, behalve moet ik weten wanneer dit raam focus heeft, zodat ik bijvoorbeeld de mouse kan clippen aan het raam (het is een spel, waarbij het irritant is als je muis buiten het raam komt als het spel focus heeft).

Wat ik al geprobeert heb is om de handle van de aangemaakte window op te vangen in een globale veriable, en die te vergelijken met GetForegroundWindow(), GetActiveWindow() en GetFocus(), maar niets blijkt te werken.

Litheon

Legacy Member
hey,

normaal gezien zouden die functies toch moeten werken.

Het kan zijn dat deze functies enkel werken als deze in dezelfde thread opgeroepen worden als waar je message queue/pump zich bevindt (waar je window gecreëert wordt, de main thread). En dat deze dus niet in je remotethread (bv. DllMain) werken.

Van MSDN:
Remarks

GetFocus returns the window with the keyboard focus for the current thread's message queue. If GetFocus returns NULL, another thread's queue may be attached to a window that has the keyboard focus.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan