Canopus
Canopus

Reputation: 7447

How to set input focus to an application which is not in foreground in Windows?

I want my application to capture input focus, whenever the mouse hovers over it. How do I do it in Windows?

Basically I dont want users to explicitly click on the application, or the taskbar icon before entering any text, when the application is not in foreground.

I tried the SetForegroundWindow API in the mouse hover notification, but that just flashes the icon in the taskbar.

Any suggestions?

Upvotes: 0

Views: 768

Answers (3)

Raghuram Reddy N
Raghuram Reddy N

Reputation: 55

There are 3 ways you can make your window Active

  1. Use SetActiveWindow API to make your window active.
  2. Enumarate all the windows and get your window handle and make foreground window.
  3. Use AllowSetForegroundWindow API which accepts processid as the parameter and makes that process as active.

Upvotes: 0

Hans Passant
Hans Passant

Reputation: 941545

Not sure where the focus is supposed to go. But if to the hovered window then fake a mouse click with SendInput().

Upvotes: 1

Sunscreen
Sunscreen

Reputation: 3564

Try GetDlgItem(QTIDD_W01_0)->SetFocus(); //QTIDD_W01_0 is the window of the screen

Upvotes: 0

Related Questions