Cod*_*ray 40
有两种方法可以将初始焦点设置为MFC中的特定控件.
第一种也是最简单的方法是利用控件的Tab键顺序.在Visual Studio中使用资源编辑器布置对话框时,可以为每个控件分配选项卡索引.具有最低选项卡索引的控件将自动接收初始焦点.要设置控件的Tab键顺序,请从"Format"菜单中选择"Tab Order",或按Ctrl+ D.
第二种稍微复杂的方法是覆盖表示对话框的类中的OnInitDialog函数.在该函数中,您可以将输入焦点设置为您希望的任何控件,然后返回FALSE以指示您已将输入焦点显式设置为对话框中的某个控件.如果返回TRUE,框架会自动将焦点设置为默认位置,如上所述,作为对话框中的第一个控件.要将焦点设置为特定控件,请调用GotoDlgCtrl方法并指定控件.例如:
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// Add your initialization code here
// ...
// Set the input focus to your control
GotoDlgCtrl(GetDlgItem(IDC_EDIT));
// Return FALSE because you manually set the focus to a control
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您应该不通过简单的调用将焦点设置在对话框中SetFocus的特定控制的方法.Raymond Chen 在他的博客上解释了为什么它比这更复杂,以及为什么GotoDlgCtrl函数(或它的等价,WM_NEXTDLGCTRL消息)是首选.
| 归档时间: |
|
| 查看次数: |
23323 次 |
| 最近记录: |