在Win32 上如何使應用程式取得輸入焦點

如何使應用程式取得輸入焦點 (Foreground window & input focus)
除了使用 SetForeground 外必須 使用 AttachThreadInput() 去得到目前輸入的 Thread
  HWND   hForegdWnd   =   ::GetForegroundWindow();
  DWORD   dwCurID   =   ::GetCurrentThreadId();
  DWORD   dwForeID   =   ::GetWindowThreadProcessId(hForegdWnd,   NULL);
  
  ::AttachThreadInput(dwCurID,   dwForeID,   TRUE);
  ::SetForegroundWindow(m_hWnd);  
  ::AttachThreadInput(dwCurID,   dwForeID,   FALSE);
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: