欢迎来到天天文库
浏览记录
ID:40562204
大小:453.00 KB
页数:10页
时间:2019-08-04
《MFC对话框学习 心得》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机图形学交互式程序设计心得Mfc对话框学习对于无模式对话框接收的输入信息,我们可以以向父窗口发送消息的方式进行。下面以Vc++6.0来用实例来说明无模式对话框的使用。1、建立mfcappwizard(exe)工程,用AppWizard生成一个单文档应用程序,取名dream确定-》选择单文档-》完成即可。1、点ResoucreView中的Dialog,右击-》插入-》选中对话框-》新建,创建一个如图所示的对话框资源,选中对话框,右击-》属性,将对话框命名为IDD_DREAM。并依次给对话框资源添加控件。关闭对话框,为对话框添加控件。编辑框、按钮、静态文本等通过点击控件的属性来
2、,修改其标题和ID值。1、启动MFCClassWizard添加一个新类,右击对话框-建立类向导-》确定:如图将类命名为cdtestdream,然后点击确定,即可!4.用MFCClassWizard为新建类CDtestdlmy的编辑控件添加对应的成员变量,如图。双击你要添加变量的ID号,然后设置变量名和变量类型。点击确定!4、在头文件dtestdream.h中为类Cdtestdream添加成员变量CWnd*m_pParent;在dtestdream.cpp中为构造函数时添加如下黑体部分Cdtestdream::Cdtestdream(CWnd*pParent/*=NULL*/):
3、CDialog(Cdtestdream::IDD,pParent){//{{AFX_DATA_INIT(Cdtestdream)m_x=0;m_y=0;//}}AFX_DATA_INITASSERT(pParent);m_pParent=pParent;//保存父窗口指针}5、用MFCClassWizard为新建类CDtestdream的按钮控件添加对应的成员函数,如图。在dtestdream里面会加入相应的函数:修改此函数:voidCdtestdream::OnMuice(){//TODO:Addyourcontrolnotificationhandlercodeherefl
4、oatFV_i;FV_i=1;//不同按钮返回不同值,让其父窗口可以识别是哪个按钮按下UpdateData(true);//强制数据交换,以更新控件对应的变量值m_pParent->SendMessage(WM_DLG_CREATE,(WPARAM)FV_i);//向父窗口发送消息WM_DLG_CREATE,并传送FV_i}6、在头文件dtestdream.h中添加自定义消息#defineWM_DLG_CREATEWM_USER+0X34至此,对于新加进类dtestdream的处理已完成,下面处理调用Cdtestdream的CdreamlView类。7、在ResoucreVie
5、w中的双击Menu资源IDR_MAINFRAME,添加菜单“对话框测试”,ID为ID_EDIT_TEST,如图所示。8、在头文件dreamView.h中为CtestdlView类添加成员变量并引入头文件#include"dreamView.h"Cdtestdream*testdlmy;黄色区域要符合自己的类名!intx,y;在CTestdlView::CTestdlView()构造函数中添加如下代码:CTestdlView::CTestdlView(){//TODO:addconstructioncodeheretestdlmy=newCdtestdream(this);x=0
6、;y=0;}9、利用类向导CdreamView类添加响应ID_EDIT_TEST的函数CDreamView::OnEditTest。如图所示在函数中添加如下代码:voidCDreamView::OnEditTest(){//TODO:Addyourcommandhandlercodeheretestdlmy->Create(IDD_DREAM,NULL);//创建无模式对话框,黄色区域名字要根据工程名修改!testdlmy->ShowWindow(SW_SHOW);//显示无模式对话框}到此时,程序运行就可以显示对话框了,运行结果如图所示:但还没有添加对应动作,下面添加响应动作
7、。9、手动为CdreamView类添加消息响应函数在头文件dreamView.h中添加afx_msgvoidOnDlgNotifyMsg(WPARAMwP);在dreamView.cpp的消息响应表中添加黑体部分IMPLEMENT_DYNCREATE(CDreamView,CView)BEGIN_MESSAGE_MAP(CDreamView,CView)//{{AFX_MSG_MAP(CDreamView)ON_COMMAND(ID_EDIT_TEST,OnEditTest)//}}AFX_
此文档下载收益归作者所有