自定义对话框的默认按钮、输入焦点传递

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

  

时间: 2024-08-08 13:56:30

自定义对话框的默认按钮、输入焦点传递的相关文章

arx 中对话框无法获得输入焦点的问题

增加WM_ACAD_KEEPFOCUS消息的响应函数 afx_msg LONG onAcadKeepFocus( UINT, LONG ); BEGIN_MESSAGE_MAP(CPlotSingleDlg, CAcUiDialog) ON_MESSAGE( WM_ACAD_KEEPFOCUS, onAcadKeepFocus ) END_MESSAGE_MAP() LONG CPlotSingleDlg::onAcadKeepFocus( UINT, LONG ) { return TRUE;

View(视图)——对话框之自定义对话框

一.自定义对话框 1.不能直接实例化使用 2.使用内部构造器来生成对话框 3.new  AlertDialog.Builder(context)  实例化构造器 1-setTitle (标题) 2-setMessage (消息) 3-按钮 1°确认按钮  setPositiveButton(“文字”,点击事件监听器) 2°否认按钮  setNegativeButton(“文字”,点击事件监听器) 3°中立按钮  setNeutralButton(“文字”,点击事件监听器) 4-show() 创建

Android—关于自定义对话框的工具类

开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函数的参数中,并且是静态,可以用类直接调用此函数. public class MyAutoDialogUtil { private static AlertDialog dialog; /** * * @param context * 上下文 * @param text * 自定义显示的文字 * @p

手机安全卫士------手机防盗页面之自定义对话框&MD5加密

功能需求: 用户点击主页面上的"手机防盗"按钮时,判断用户是否设置过密码. 如果没有设置过,则弹出输入密码对话框 如果设置过了,则弹出设置密码对话框 用户的密码要进行MD5加密之后再存储在内存中 技术点: - 自定义对话框的使用 - MD5加密的实现方式 - SharedPreferences的读写操作 自定义对话框 1.在layout目录下创建一个布局文件,把自定义的对话框布局设置成功 具体代码实现如下 设置密码对话框的布局代码: <?xml version="1.0

Android自定义组件系列【13】——Android自定义对话框如此简单

在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按钮,例如这样的一系列需求,这一篇文章我们来给大家介绍一下如何像使用Activity一样来自定义我们的对话框. 一般自定义对话框有下面几种办法: 1.重写Dialog来实现. 2.获取Dialog的Window对象实现. 3.使用WindowManager来实现. 4.使用DialogTheme来实现

Android实例-手机安全卫士(十一)-自定义对话框点击事件处理

一.目标 在弹出的自定义对话框中,当点击“确认”时,保存密码,关闭对话框:当点击“取消”时关闭对话框.同时,如果不输入密码或输入密码错误则弹出相应的提示. 二.代码实现. 1.在主界面代码类(HomeActivity)中定义设置防盗密码对话框中的对应TextView.Button等成员变量,并在显示设置防盗密码对话框方法(showSetPwdDialog)中通过view.findViewById方法找到对应的组件: 2.为“取消”按钮设置取消操作的监听事件并进行处理.通过setOnClickLi

Android开发学习笔记-自定义对话框

系统默认的对话框只能显示简单的标题内容以及按钮,而如果想要多现实其他内容则就需要自定义对话框,下面是自定义对话框的方法. 1.先定义对话框的模版 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300d

android 自定义对话框

新建一个布局文件 my_dialog.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match

Android实例-手机安全卫士(十)-自定义对话框

一.目标. 当点击“手机防盗”时弹出自定义的设置密码对话框.如果已经设置密码,则弹出自定义的输入密码对话框. 二.代码实现. 1.在layout文件夹下新建xml(取名setpwddialog.xml)文件用于设置自定义对话框的UI. 新建xml文件代码如下; 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.a