在对话框上按Ctl+D键可以设置Tab键的焦点顺序,把你想要的Edit Controls设置为第一,这样对话框启动时就自动设置为焦点了。
如果使用程序来设置如下,
this->SendDlgItemMessage(IDC_Name,WM_SETFOCUS,0,0);
或者
GetDlgItem(IDC_Name)->PostMessage(WM_SETFOCUS, 0, 0);
如果想通过Enter键来切换Edit Controls的焦点,可以使用OK键的消息函数来捕捉Enter回车键,在OnBnClickedOk()函里进行 Edit Controls 焦点的切换m,
CWnd* pwndCtrl = GetFocus();
CWnd* pwndCtrlNext = pwndCtrl;
int ctrl_ID = pwndCtrl->GetDlgCtrlID();
switch (ctrl_ID) {
case IDC_Edit1:
pwndCtrlNext = GetDlgItem(IDC_Edit2); //切换焦点
pwndCtrlNext->SetFocus();
return; //退出。
//break;
default:
break;
}
本文详细介绍了如何使用CTl+D键设置对话框中EditControls的焦点顺序,并通过Enter键实现焦点之间的无缝切换。包括使用SendDlgItemMessage和PostMessage函数的方法,以及在OnBnClickedOk函数中实现焦点自动流转的示例代码。
738

被折叠的 条评论
为什么被折叠?



