要取消按鈕的焦點,可以使用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即可。