我有一個基於對話框的MFC工具,當我點擊它時,應該顯示另一個應用程序窗口的標題。 我的問題是WM_KILLFOCUS在這裏不起作用。也許我做錯了。 我做了以下幾件事:當選擇另一個窗口時通知CDialog窗口
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_WM_KILLFOCUS()
END_MESSAGE_MAP()
...
...
void CMyDlg::OnKillFocus(CWnd* pNewWnd)
{
CDialog::OnKillFocus(pNewWnd);
if(m_bSelectorModeActive)
{
HWND hwnd(GetForegroundWindow());
TCHAR buf[512];
::GetWindowText(hwnd, buf, 512);
MessageBox(buf);
}
}
任何想法有什麼不對?
我很確定我的最後一個答案完全是基地外。我試着去看文檔,這並不總是最聰明的舉動。我實際上是在一個示例項目中嘗試過的,我已經相應地更新了我的答案。我現在展示的代碼工作得很好。唯一的問題是,如果你的對話框上有任何子控件,當用戶在它們之間切換時,你會得到很多「誤報」WM_KILLFOCUS消息。 – 2011-02-17 11:49:56