• 注意!!!对话框的默认按钮、输入焦点传递


    注意:

      当一个对话框中没有按钮控件(也就没有缺省按钮)时,在对话框弹出后首次按下回车键即默认执行“OnOK”,会使对话框默认关闭,这时需要先注释掉调用基类的OnOK函数的响应执行,再利用GetNextDlgTabItem函数将回车后的焦点传递到当前对话框中的别的控件上,使对话框不被关闭!

      当对话框弹出后按下【esc】键会默认响应“OnCancel”,会使对话框默认关闭,可以改变响应函数“OnCancel”和“OnClose”以使对话框更好的关闭:  

    void CxxxDlg::OnCancel()
    {
    	// TODO: 在此添加专用代码和/或调用基类
    	//if (MessageBox(_T("确定要退出吗?"),_T("退出提示"),MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
    	//{
    	//	return;
    	//}
    	//else
    	//{
    		CDialogEx::OnCancel();	
    	//}
    }
    
    void CxxxDlg::OnClose()
    {
    	// TODO: 在此添加消息处理程序代码和/或调用默认值
    	////////////////////////////////////////////////////////////////////////////////
    	if (MessageBox(_T("确定要退出吗?"),_T("退出提示"),MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
    	{
    		return;
    	}
    	else
    	{
    		//CDialogEx::OnClose();
    		CDialogEx::OnCancel();
    	}
    	////////////////////////////////////////////////////////////////////////////////
    }
    

    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顺序依次查找各控件;

      

  • 相关阅读:
    开发,从需求出发 · 之四 春天在这里
    面向基于英特尔® 架构的 Android* 的 CoCos2D
    js左右切换 选择年龄
    先序遍历创建二叉树,对二叉树统计叶子节点个数和统计深度(创建二叉树时#代表空树,序列不能有误)c语言
    [ACM] hdu 1251 统计难题 (字典树)
    设计模式:单例模式的三种创建方式及其各自的优缺点
    [Android 4.4.2] 泛泰A850 Mokee4.4.2 20140509 RC2.0 by syhost
    IA32 MMU paging初始化代码
    为Android开发人员定制的搜索引擎
    Android中Activity切换时共享视图元素的切换动画(5.0以上)
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/6918813.html
Copyright © 2020-2023  润新知