首页 > 代码库 > 自定义对话框的默认按钮、输入焦点传递
自定义对话框的默认按钮、输入焦点传递
1、对话框的默认按钮
当在资源窗口中插入一个默认的对话框资源时,“确定(OK)”按钮的样式中的“缺省按钮”选项是选中的,而别的控件的样式中均未选中;对话框中是否为默认按钮即由该样式选项决定,当对话框弹出后首次按下回车键即执行默认按钮的响应函数;
2、输入焦点
在对话框中按Tab键时,输入焦点会依照Tab顺序在各控件上传递;Tab顺序:VC菜单栏->布局->Tab顺序/Ctrl+D可查看该顺序,在查看状态下点击控件可重排顺序;
双击“确定(OK)”按钮,生成IDOK的响应函数OnOK,可见对话框的IDOK按钮响应函数调用了基类的OnOK函数;
void CTestDlg::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); }
当用户在对话框弹出后,按下“回车键”时,先查看对话框中是否有指定的默认按钮,如果有就调用该默认按钮的响应函数,如果没有则调用对话框的OnOK函数,即使对话框中没有“确定(OK)”按钮;
注释掉调用基类的OnOK函数的这行代码后,利用GetNextDlgTabItem函数可用回车键将焦点在各控件间传递:
void CTestDlg::OnOK() { // TODO: Add extra validation here GetNextDlgTabItem(GetFocus())->SetFocus(); //CDialog::OnOK(); }
GetNextDlgTabItem:查找具有“制表站(Tab stop)”属性的控件,并按Tab顺序依次查找各控件;
自定义对话框的默认按钮、输入焦点传递
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。