vc++对话框

本文详细介绍了VC++中模式对话框和无模式对话框的区别与使用。模式对话框在用户作出响应前阻止程序继续,而无模式对话框允许用户同时操作其他窗口。创建过程包括设计对话框模板、创建对话框类、添加控件和数据交换等步骤。通过实例展示了如何在模式对话框中交换数据,并讲解了如何创建无模式对话框及其初始化。此外,还探讨了通用对话框如颜色、文件和字体对话框的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对话框的分类:模式对话框和无模式对话框

1、模式对话框是指在程序继续之前需要用户对该对话框作出响应(单击确定或者取消)。当一个模式对话框打开时,用户只能与该对话框进行交互,其他用户界面对象收不到输入信息。

2、当用户创建无模式对话框以后,用户仍然可以操作其他窗口。无模式对话框可以一直出现在屏幕上,不影响应用程序的执行。比如Windows系统中的查找\替换对话框。

区别:

1、无模式对话框对象必须能在程序运行期间都存在,因此不能像模式对话框那样以局部变量的形式构建在堆栈上

2、无模式对话框是通过调用CDiglog::Create函数来创建的,而模式对话框则是通过调用CDialog::DoModal函数产生的

3、无模式对话框初始必须可见,可设置对话框的Visible风格,或者调用CWnd的成员函数ShowWindow来显示对话框

 

一般的对话框创建步骤:

1、使用对话框编辑器设计对话框的外观布局,创建对话框模板资源

2、使用ClassWizard创建新的对话框类

3、使用ClassWizard向对话框类中加入与控件相关联的数据成员,并为控件指定对话数据交换和对话数据验证(DDX/DDV)

4、使用ClassWizard进行消息映射,即将对话框资源的控件与对话框类中的消息处理函数联系起来

5、在应用程序中声明对话框类的对象,并使用CDialog类相应的成员函数弹出(显示)对话框

注意:其中模式对话框和无模式对话框只是在最后一步添加的代码有所不同,所需要的对话框模板和对话框类可以是相同的

 

创建对话框模板资源的步骤:

1、插入新对话框资源

使用Resource View中的右键菜单插入对话框资源,在其属性对话框中修改ID为IDD_LINEWIDTH,修改Caption属性为“设置线条宽度”

2、添加控件

增加3个控件,两个为静态文本控件,一个为编辑框

编辑完对话框模板资源后,可以使用Dialog工具栏最左边的一个按钮(或者使用加速键Ctrl+T,也可使用菜单命令Layout|Test)来测试和观察对话框的显示效果

3、编辑控件属性

依次对三个控件属性进行修改:两个静态文本Caption分别为“线条宽度”和“象素”,编辑框ID为IDC_EDIT_LINEWIDTH

按Ctrl+D(或者只用菜单命令Layout|Tab Order)可以显示对话框所有控件的顺序,然后可以用鼠标来重新指定Tab顺序,指定完顺序后可以在测试状态下观察Tab键是否按照设定的顺序跳动

 

添加新的对话框类的方法:

1、按加速键Ctrl+W(或者直接双击编辑窗口中的对话框)进入ClassWizard,会询问是否要为IDD_LINEWIDTH创建一个新的对话框类,单击OK确认。

2、在New Class对话框中,输入新对话框类的名称CLineWidthDlg,单击OK按钮。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值