关键代码:
(CEdit*)GetDlgItem(IDC_NAME)->SetFocus();
也可以直接使用:"GetDlgItem(IDC_NAME)->SetFocus();"
强制为CEdit类指针,即可使用SetFocus()成员函数,在运行时就可以得到输入焦点了。
例子:简单的登录对话框点击登录控钮时的代码:
void CLogin::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); if(m_strName!= "admin" || m_strPwd!= "password") { MessageBox("用户名或是密码错误!","登录提示",MB_ICONSTOP | MB_OK); (CEdit*)GetDlgItem( IDC_NAME)->SetFocus(); return; } CDialog::OnOK(); }
若输入有误或不正确,文本框用户名得到输入焦点。
VC++ 如何在显示对话框的时候,指定焦点控件!
很简单:
在你的CAddDlg类的OnInitDialog函数中
加上你上面的代码
GetDlgItem(IDC_EDIT1)->SetFocus();
最后记得"return FALSE;"
其实,不知道返回FALSE是啥意思!
查了说明:
Return Value
Specifies whether the application has set the input focus to one of the controls in the dialog box.
If OnInitDialog returns nonzero, Windows sets the input focus to the first control in the dialog box.
The application can return 0 only if it has explicitly set the input focus to one of the controls in the dialog box.
翻译一下,大概的意思是
返回值 是确定对话框在打开的时候,对话框焦点的位置.
如果返回为非零(TRUE),但指定对话框在打开的时候,焦点位于第一个控件上.
如果返回值为零(FALSE),则是根据指定的控件来设定焦点的位置.