我这样做的
void CMFCDDlg::OnOK() 
{
// TODO: Add extra validation here
HWND hWnd = ::GetFocus();
if (hWnd == this->m_hWnd)
{
MessageBox("success");
}
// CDialog::OnOK();
}
但是并没有成功,大家说说,谢谢了

解决方案 »

  1.   

    if (hWnd == this->m_hWnd)
    不是this->m_hWnd是BTNOK的hWnd
    用GetDlgItem()获得
    CWnd* GetDlgItem( int nID ) const;
      

  2.   

    if (GetActiveWindow()==this)
    {
    MessageBox("success");
    }
      

  3.   

    谢谢
    那我派生于CWindowImpl<>的窗口程序,如何判断是不是当前活动窗口呢?
    CWindowImpl<>里有一个m_hWnd,是当前窗口句柄
    但是
    HWND hWnd = ::GetFocus();
    if (hWnd == m_hWnd)
    {
    MessageBox("success");
    }
    还是不行,怎么回事哦
      

  4.   

    谢谢楼上的,那我想问一下GetFocus()出来的是什么窗口句柄呢?
      

  5.   

    我不是给你程序了吗?
    if (GetActiveWindow()==this)
    {
    MessageBox("success");
    }判断是否活动窗口,
    也可以用别的句柄来代替 this,
    即想要检测的窗口句柄