方法:
1、放在缺省函数中实现ONOK(),在窗口默认的OK按钮上,添加以下代码:
GetNextDlgTabItem(GetFocus())->SetFocus();
并注释:CDialog::OnOK();
即可完成将输入焦点移到下一个编辑框的功能。
其它:
1、通过捕获键盘上的按键消息,然后在消息的响应函数当中将输入焦点移动到下一个编辑框,现在的编辑框是一个控件,我们可以针对编辑框去生成一个类来完成这个功能;
2、通过去修改编辑框控件原先的窗口过程:也就是说我们自己去编写一个窗口过程然后去替换MFC给我们准备的窗口过程,我们知道所有的消息都要到我们的窗口过程中来报道,那么在我们自己写的窗口过程当中,就可以判断一下消息是否是回车字符,如果是就可以将输入焦点移动到下一个编辑框。
窗口过程的设置是在设计窗口类的时候去指定的,我们在窗口创建完成之后如何去修改窗口类的窗口过程尼?我们用到一个函数:
SetWindowLong();第一个参数是要改变的窗口句柄,第二个是偏移量,第三个是新的值,
3、WM_INITDIALOG消息,是当对话框及其上面的子控件创建完成后,对话框将要显示之前发送的一个消息。我们可以对它进行响应。
4、窗口过程类:WNDPROC
5、重写窗口过程:如何写,去查一下窗口类WNDCLASS,在这个类里有一个参数就是窗口过程,将其拷过去,重新命名即可。重写即可。
6、获得当前窗口的下一下窗口的句柄:GetNextWindow(),
另一个获取窗口句柄的函数:GetWindow();
将焦点移到下一个编辑框:GetNextDlgTabItem()
知识点:
1、当我们捕获一个消息的时候随着消息会传入一个句柄,
2、TAB的顺序:在Layout菜单下,Tab Order.点击它,在窗口上就会出现各个了控件的Tab编号 ,它的顺序是可以改变的。