要取消按钮的焦点,可以使用CButton类的函数SetFocus()将焦点设置到其它控件上。具体步骤如下:
打开对话框类的头文件(通常是XXXDlg.h);
在对话框类的声明中添加成员变量,表示按钮控件的指针,例如:CButton m_btnCancel;
在OnInitDialog()函数中添加代码,获取按钮控件的指针,例如:m_btnCancel.SubclassDlgItem(IDCANCEL, this);
在OnInitDialog()函数的末尾,添加代码将焦点设置到其它控件上,例如:GetDlgItem(IDC_OTHER_CONTROL)->SetFocus()。
完整示例代码如下:
// XXXDlg.h文件
class CXXXDlg : public CDialogEx
{
// ...
CButton m_btnCancel; // 按钮控件的指针
// ...
};
// XXXDlg.cpp文件
BOOL CXXXDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 获取按钮控件的指针
m_btnCancel.SubclassDlgItem(IDCANCEL, this);
// 将焦点设置到其它控件上
GetDlgItem(IDC_OTHER_CONTROL)->SetFocus();
return TRUE;
}
上述代码中,IDCANCEL是取消按钮的ID,IDC_OTHER_CONTROL是其它控件的ID。根据实际情况修改这些ID即可。