《5 vc++ 编程技术.ppt》由会员分享,可在线阅读,更多相关《5 vc++ 编程技术.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、V c+编程技术授课对象:(本科)教 师:廖光忠第五讲 对话框和界面目标:学习使用对话框与用户进行会话的机制1.使用对话框编辑器2.创建一个对话框类3.模态和非模态对话框4.例子;使用对话框编辑器1.利用Developer Studio创建一个新对话框模板要创建一个新的对话框模板,单击Developer Studio的I n s e r t/R e s o u r c e菜单命令以打开Insert Resource对话框,选择D i a l o g,然后单击N e w按钮。2.用对话框编辑器编辑一个已有的对话框模板。1)要编辑一个已有的模板,单击工作空间窗口的Resource Vi e w选项
2、卡,然后在D i a l o g文件夹中找到那个模板的I D,并双击它。2)对话框编辑器的工作是把控件从控件工具栏拖到对话框中;控件刚被创建时,它的属性框是打开的;但也可以通过右击该控件,然后在弹出式菜单中选择P r o p e r t i e s命令打开它们。在应用程序资源中添加或修改一个对话框模板,该模板可以用来创建一个对话框或属性页。3)要调整模板中控件的位置,用Developer Studio的L a y o u t命令下的菜单命令,有关这些命令的更详细的消息参见M F C文档。4)Layout/Ta b O r d e r菜单命令允许指定在按Ta b键时这些控件接收输入焦点的顺序。事
3、实上,所有这些命令所做的是在资源文件中记录控件声明。Tab Order还决定控件窗口在对话框中被画的顺序,在两个控件窗口重叠时,可以确定哪个在上面,具有更高级的t a b顺序的控件将显示在上面。5)Developer Studio的L a y o u t/Te s t菜单命令允许预览那个模板显示对话框时的外观。要退出该模板,可以单击任何按钮或按E s c a p e键。创建一个对话框类目标目标在已创建一个前面例子中看到的对话框模板后,再创建一个对话框类,以简化从该模板创建对话框的工作。策略策略用C l a s s Wi z a r d 创建一个对话框类,它有助于从对话框模板创建一个对话框;用C
4、 l a s s Wi z a r d添加与对话框中的控件相对应的成员变量到该类中。步骤1.用C l a s s Wi z a r d创建一个对话框类2.添加控件消息处理函数到对话框类3.添加成员变量到对话框类1.先设计一个对话框,然后用C l a s s Wi z a r d创建一个对话框类1.Create a new class or select an existing class2.Click on the“ok”3.Click on the“ok”2.添加控件消息处理函数到对话框类3.Click on the“Add Function”then“Edit Function”butto
5、ns2.Click on the message handler you want to add for that control 1.Click on the controls id4.Change Member function name3.添加成员变量到对话框类1.Click on the controls id 3.Add a member variable name and how it interacts with the control 2.Click on the“Add Variable”button 模式对话框目标目标 在挂起应用程序情况下,提示用户输入策略策略调用对话框类
6、中的DoModal()成员函数,创建一个模式对话框。首先把输入的值放到对话框类的成员变量中,然后在对话框关闭时接收它们。步骤步骤创建一个模式对话框1)创建一个对话框资源和类,为对话框模板中的每一个控件添加一个成员变量到对话框类中。2)在堆栈中创建对话框类的一个实例。CwzdDialog dlg;3)在对话框类中,用调用类的值初始化成员变量;然后,调用对话框类的DoModal()函数;如果D o M o d a l返回I D O K,则把那些成员变量的值返回给对话框类。无模式对话框目标创建一个对话框,即使用户没有关闭该对话框,也能允许应用程序继续运行。策略 创建一个对话框模板和对话框类,然后用新
7、的对话框类的Create()成员函数创建一个无模式对话框;要关闭无模式对话框,可以用C W n d:D e s t r o y Window()。步骤1.创建一个无模式对话框用对话框编辑器在应用程序中创建一个对话框资源,然后用C l a s s Wi z a r d创建一个对话框类,这时可以用该对话框类创建一个无模式对话框。CWzdDialog*pDlg;pDlg=new CWzdDialog;pDlg-Create(IDD_WZD_DIALOG);/id of dialog box resourcep D l g-S h o w Window(SW_SHOW);/dialog is init
8、ially hidden2.销毁一个无模式对话框1)要销毁一个无模式对话框,可以用:p D l g D e s t r o y Window();2)用户可以通过单击对话框窗口右上角的关闭按钮销毁一个无模式对话框,然而,当用户用这种方法关闭一个对话框窗口时,操作系统不知道是否应该删除对话框类。因此用户必须用C l a s s Wi z a r d重载对话框类的PostNcDestroy()函数关闭。对话框中的动画目标目标在对话框中显示一个动画,指示函数调用的进度策略策略用对话框编辑器添加一个动画控件到对话框模板,接着在对话框类的OnInitDialog()中用一个.a v i文件装入该控件,然
9、后用动画控件类的成员函数开始和停止播放该.a v i文件。步骤步骤1.输入.a v i文件到应用程序的资源2.添加一个动画控件到对话框1)用对话框编辑器添加一个动画控件到对话框模板(动画控件是控件工具栏中的按钮,外观看起来象电影片断)。对于它的属性,选取c e n t e r e d和t r a n s p a r e n t。2)如果还没有创建对话框类,用C l a s s Wi z a r d为该对话框模板创建一个对话框类。要装入.a v i文件到该控件,可以用下面的代码(假设I D C _ A N I M AT E _ C T R L是该控件的I D)。CAnimateCtrl*pCtrl=(CAninmate*)GetDlgItem(IDC_ANIMAT E _ C T R L);p C t r l-O p e n(I D R _ F I L E C O P Y);3.播放.AV I文件1)要求该控件播放.AV I文件,可以用:pCtrl-Play(0,/first frame -1,/last frame(-1=play every frame)-1);/number of times to play avi(-1=/play until manually stopped)2)要停止播放可以用:p C t r l-S t o p();
限制150内