文档详情

MFC对话框学习 心得.doc

发布:2018-04-20约3.2千字共10页下载文档
文本预览下载声明
计算机图形学 交互式程序设计心得 Mfc对话框学习 对于无模式对话框接收的输入信息,我们可以以向父窗口发送消息的方式进行。下面以Vc++6.0来用实例来说明无模式对话框的使用。 建立mfc appwizard(exe)工程,用AppWizard生成一个单文档应用程序,取名dream 确定-》选择单文档-》完成即可。 点ResoucreView中的Dialog,右击-》插入-》选中对话框-》新建,创建一个如图所示的对话框资源,选中对话框,右击-》属性,将对话框命名为IDD_DREAM。并依次给对话框资源添加控件。 关闭对话框,为对话框添加控件。编辑框、按钮、静态文本等 通过点击控件的属性来,修改其标题和ID值。 启动MFC ClassWizard添加一个新类,右击对话框-建立类向导-》确定:如图 将类命名为cdtestdream,然后点击确定,即可! 4.用MFC ClassWizard为新建类CDtestdlmy的编辑控件添加对应的成员变量,如图。 双击你要添加变量的ID号,然后设置变量名和变量类型。点击确定! 4、在头文件dtestdream.h中为类Cdtestdream添加成员变量CWnd *m_pParent;在dtestdream.cpp中为构造函数时添加如下黑体部分 Cdtestdream::Cdtestdream(CWnd* pParent /*=NULL*/) : CDialog(Cdtestdream::IDD, pParent) { //{{AFX_DATA_INIT(Cdtestdream) m_x = 0; m_y = 0; //}}AFX_DATA_INIT ASSERT(pParent); m_pParent=pParent; //保存父窗口指针 } 5、用MFC ClassWizard为新建类CDtestdream的按钮控件添加对应的成员函数,如图。 在dtestdream里面会加入相应的函数:修改此函数: void Cdtestdream::OnMuice() { // TODO: Add your control notification handler code here float FV_i; FV_i=1; //不同按钮返回不同值,让其父窗口可以识别是哪个按钮按下 UpdateData(true); //强制数据交换,以更新控件对应的变量值 m_pParent-SendMessage(WM_DLG_CREATE,(WPARAM)FV_i); //向父窗口发送消息WM_DLG_CREATE,并传送FV_i } 6、在头文件dtestdream.h中添加自定义消息 #define WM_DLG_CREATE WM_USER+ 0X34 至此,对于新加进类dtestdream的处理已完成,下面处理调用Cdtestdream的CdreamlView类。 7、在ResoucreView中的双击Menu资源IDR_MAINFRAME,添加菜单“对话框测试”,ID为ID_EDIT_TEST,如图所示。 8、在头文件dreamView.h中为CtestdlView类添加成员变量并引入头文件 #include dreamView.h Cdtestdream* testdlmy;黄色区域要符合自己的类名! int x,y; 在CTestdlView::CTestdlView()构造函数中添加如下代码: CTestdlView::CTestdlView() { // TODO: add construction code here testdlmy=new Cdtestdream(this); x=0;y=0; } 9、利用类向导CdreamView类添加响应ID_EDIT_TEST的函数 CDreamView::OnEditTest。如图所示 在函数中添加如下代码: void CDreamView::OnEditTest() { // TODO: Add your command handler code here testdlmy-Create(IDD_DREAM,NULL); //创建无模式对话框,黄色区域名字要根据工程名修改! testdlmy-ShowWindow(SW_SHOW); //显示无模式对话框 } 到此时,程序运行就可以显示对话框了,运行结果如图所示: 但还没有添加对应动作,下面添加响应动作。 9、手动为CdreamView类添加消息响应函数 在头文件dreamView.h中添加 afx_msg void OnDlgNotifyMsg(WPARAM wP); 在dreamView.cpp的消息响
显示全部
相似文档