I write a MFC application and need a button which is not taling the input focus away from another window.
Removing the WS_TABSTOP style does unfortunately not help when the use clicks the button with the mouse. When i block WM_LBUTTONDOWN i don’t get a visual pressed indication so this doesn’t work either.
If there is a specific window you want to keep the focus, you could just force the focus back to your window using the
CWnd::SetFocus()command in your button’sOnLButtonDownhandler.If you want the focus restored to one of several windows, you could try subclassing CButton and trapping the
CWnd::OnSetFocus()message which is sent when the keyboard focus changes to the button.The
OnSetFocus()event includes a CWnd of the control that just lost the focus, so you could manually put it back, either as part of theOnSetFocus()event itself, or later as part of theOnLButtonDown()handler again.