不用属性页方法实现 上一步 下一步 对话框功能
2012-04-20 10:47
162 查看
1. 新建VS2010 MFC dlg工程 Test, 会自动生成 Test.cpp TestDlg.cpp
2. 在资源管理器里新建对话框 Dlg2, 为其添加类Dlg2
3. 在StdAfx.h添加
3. 在TestDlg对话框按钮添加 下一步按钮, 添加代码
4. 在Dlg2添加 "上一步"按钮, 添加代码
5. 在Test.cpp的 BOOL CTestApp::InitInstance() 添加
原理大概就是 开 下一个对话框要先关闭当前对话框,
关闭对话框时若直接调用 EndDialog, 只能调用1次, 下一次 domodal就返回-1了
2. 在资源管理器里新建对话框 Dlg2, 为其添加类Dlg2
3. 在StdAfx.h添加
const int ID_END_DLG_PRE = 100; //打开起始对话框 const int ID_END_DLG_NEXT = 101; //信号源对话框
3. 在TestDlg对话框按钮添加 下一步按钮, 添加代码
EndModalLoop(ID_END_DLG_NEXT);
4. 在Dlg2添加 "上一步"按钮, 添加代码
EndModalLoop(ID_END_DLG_PRE);
5. 在Test.cpp的 BOOL CTestApp::InitInstance() 添加
SetRegistryKey(_T("Local AppWizard-Generated Applications")); //下面是添加的 CTestDlg dlg1; CDlg2 dlg2; CDialogEx *dlg = &dlg1; tagMSG msg; m_pMainWnd = &dlg1; bool end_loop = false; while ( !end_loop ) { INT_PTR nResponse = dlg->DoModal(); //dlg 关闭后, 会发诸如 WM_QUIT的消息 //用PeekMsg可以拦截此消息, 防止程序退出 PeekMessage(&msg, NULL, 0, 0, PM_REMOVE); switch ( nResponse ) { case IDOK: case IDCANCEL: end_loop = true; break; case ID_END_DLG_PRE: m_pMainWnd = &dlg1; dlg = &dlg1; break; case ID_END_DLG_NEXT: m_pMainWnd = &dlg2; dlg = &dlg2; break; default: end_loop = true; break; } } //上面是添加的 // Delete the shell manager created above. if (pShellManager != NULL) { delete pShellManager; }
原理大概就是 开 下一个对话框要先关闭当前对话框,
关闭对话框时若直接调用 EndDialog, 只能调用1次, 下一次 domodal就返回-1了
相关文章推荐
- 一个虚拟空间,不用子目录绑定功能实现建多站(一个空间绑定多个域名实现自动跳转的几种方法!)
- Bootstrap Modal的“上一步”,“下一步”切换功能的实现
- 如何实现“上一步”、“下一步”的对话框
- 不用splitter控件 简单实现对mfc对话框的分割的方法
- 不用splitter控件 简单实现对mfc对话框的分割的方法
- javascript省市级联功能实现方法实例详解
- 不用AJAX实现前台JS调用后台C#方法(小技巧) 【改自Web.网际浪人.Blog】
- drupal7 view添加查询条件又一方法效率不知道怎么样,但至少功能能实现!
- PHP排序二叉树基本功能实现方法示例
- ThinkPHP登录功能的实现方法
- php实现返回上一页的功能的3种有效方法
- Android编程使用加速度传感器实现摇一摇功能及优化的方法详解
- PHP简单实现“相关文章推荐”功能的方法
- 使用ADF-BC 实现查询功能之九:重写getCriteriaItemClause方法设置Criteria中的变量
- yii2高级应用之自定义组件实现全局使用图片上传功能的方法
- 服务器消息推送类功能实现方法比较
- 方法:如何解决用MFC实现的ping功能中把目标主机不可到达的当成ping通的问题
- 实现只能输入数字的input不用replace方法
- php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
- 菜鸟蔡之Ajax复习第二篇(JQuery中的load()方法实现Ajax功能)