CWnd::OnSetFocus 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理窗口获得焦点时的操作。当窗口成为输入焦点的时候,系统将调用这个方法。

以下是 OnSetFocus 方法的典型声明:
afx_msg void OnSetFocus(CWnd* pOldWnd);

  •  pOldWnd 参数是指向先前拥有焦点的窗口的指针。


在实际应用中,您可以重写这个方法以执行在窗口获得焦点时需要进行的自定义操作。例如:
void CYourWndClass::OnSetFocus(CWnd* pOldWnd)
{
    // 执行窗口获得焦点时的自定义操作

    // 调用基类实现
    CWnd::OnSetFocus(pOldWnd);
}

在这个方法中,您可以执行任何在窗口获得焦点时需要进行的操作。当然,您也可以根据需要访问 pOldWnd 参数,以了解哪个窗口失去了焦点。

为了使用这个方法,您需要在消息映射中添加对应的宏,例如:
BEGIN_MESSAGE_MAP(CYourWndClass, CWnd)
    // 其他消息映射...
    ON_WM_SETFOCUS()
END_MESSAGE_MAP()

这样,当窗口获得焦点时,OnSetFocus 方法就会被调用。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23676/MFC/CWnd