mfc模态对话框
Mfc模态对话框:
创建模态对话框:
【模态对话框:具有独占行为,必须由用户完成对当前对话框的响应,才能对本对话框所属的进程进行其他操作】
例如:
我们创建一个加法计算器。点击计算之后,弹出一个对话框,当用户点击完确定之后。才进行计算,如果点击取消,则不进行计算。

把上次那个反复敲几遍就会啦,我本身也是边做博客边在背。写过一遍,就是比较有作用。
我懒了,就按照上一讲制作的东西接着往下写了。
以下正文:
一、界面部分
经常从下面这四个选项卡来回点点,要不每次我说的是啥你都不知道,,,开始我也不敢点。。。笑哭。。。

右键Dialog

点击插入
2、

发现两点变化:
1、多出了一个东西,那必须是我们要求创建的对话框了
2、主要操作界面里面也出了新的对话框界面。
/*bug2:继昨天的改名风波之后。【不改名,就添加不了变量】这个作为一个提示对话框玲珑一些会比较好。所以我们选中它把它变小。从图像界面的右下角点击那个小黑点儿,往左上方拖拽。

发现确定没了,然后后来程序的运行就比较诡异了,各种东西的操作也不听使唤了。所以跟紧我。然后如果在看博客运行的同时发现了问题,欢迎评论讨论。
*/
3、先把确定按钮,往左上方,放放省的被挤没了。
1)点击确定按钮,进行拖拽。

2)然后同时进行其他控件的调整。

3、添加一个静态文本进行提示:是否要进行计算呢?【这个上一讲说过啦,就不再写了】

4、界面就好啦。
二、代码链接

弹出对话框后,如此点击:

给一个类名,这个名字的来源:c应该是取class的意思,tip提示嘛,dlg对话框的简写。
人品爆了。。。笑哭

之前创建之后,在这个IDD_DIALOG1下面都会报错误的。也可能这次着急了没有改id导致没有报错。。。总之这里报错与否都不影响我们继续往下进行。
有了对应的类,接下来,当我们按下按钮。创建该对象的实例,然后得到当前对话框返回的按钮的值,从而决定是否进行操作。
所以,上面这句话就是就是算法了,【我眼中的算法,或许可以写点儿什么,或许10年之后当我再次看到这个博文的时候可能感触又不一样了呢。。。那个时候可以再看看人月神话,一定会有新的领悟。】只是算法很简单。几乎不需要思考,所以不用数学对问题进行处理的算法,就是在拿英文写故事。所以这点上来讲,我们编程确实需要一些英文功夫。
算法的切入点在“当我们按下按钮”。
然后我们要创建 CTipDlg类型的对象,首先要引入这个对象的头文件。
#include "TipDlg.h"
这么一大段话,就是想说,这个包含头文件的操作,应该放在我们双击按钮之后到达的那个cpp文件里面,在当前这篇博客里面他就是MyAdditionComputer.cpp 文件里面。
然后在上次我们写代码的地方继续这样写:
//也就是在这个文件里面,加上包含头文件那句话。
void CMyAdditionComputerDlg::OnBnClickedButton1()
{
INT_PTR nRes;//typedef _W64 int INT_PTR 又把__W64 定义成 _W64...笑哭。。。
CTipDlg tipDlg;//声明一个CTipDlg的对象 tipDlg
nRes = tipDlg.DoModal();//对象创建模型赋给那个整形指针。
if (nRes ==IDCANCEL){//整形指针的结果如果是退出
return;//就返回,对于当前这个按钮按下事件的处理结束。
}
//否则 说明点击的是确定,那么继续往下执行。运算并得到结果。
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);//见名知意,更新数据。不过它到底是什么呢?双击UpdateData这个单词。按下F12
//得到下面这样一个函数
c = a + b;//记得我们之前写的 a 和 b 还有c 嘛,就是他们了,分别指定了int型的变量abc。然后做加法
UpdateData(false);
}
三、运行与结果:

除了这个框框:

点击取消:

不会计算。
点击确定

完成计算。
证明这是个模态窗口,在点击完运算之后,随意的点击这个对话框上面的其他内容,可以看看是不是有响应。
下面一讲将介绍,非模态窗口,就是当前对话框它弹它的,后面的内容可以继续执行,要怎么做。
mfc模态对话框的更多相关文章
- MFC模态对话框的消息循环
MFC模态对话框的消息循环 单线程程序, 当主窗口响应函数中弹出模态对话框时,为什么主窗口响应函数可能照常工作? 当弹出模态对话框时,线程的消息循环无法返回,父窗口的事件本应没人处理,应该处于卡死状态 ...
- MFC模态对话框程序不响应OnIdle
从代码分析原因吧: OnIdle函数在MFC的CWinThread::Run函数中被调用,如下 // main running routine until thread exits int CWinT ...
- MFC 模态对话框、非模态对话框
modal dialogs与modeless dialogs,modal dialogs会让原窗体不被选中,modeless dialogs原窗体依然可以选中. 1.模态对话框的显示 DlgModal ...
- 再谈MFC学习——模态对话框的数据传递
学习c++的目的就是为了使用封装好的类.而最最经典的封装类当然是微软的MFC窗体程序类. 学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想. 以下就看下我学习的MFC模态对话框的数据 ...
- MFC编程 | 非模态对话框的定义
因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // 非模态对话框的定义 // 通过单文档菜单调用一个非模态窗口 1.首先在工程里插入一个对话框(如:IDD_DLG_TEST ...
- MFC编程入门之十二(对话框:非模态对话框的创建及显示)
上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 非模态对话框显示后,程序其他窗口仍然能正常运行,可以响应用户输入,还可以相互切换.上一讲中创建的Tip模态对话框 ...
- MFC编程入门之十一(对话框:模态对话框及其弹出过程)
加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有了些解了,有个好的开始对于以后的学习大有裨益.趁热打铁,这一节讲讲什么是对话框和非模态对话框,以及模态对话框怎样弹出. 一.模态对话框和非 ...
- mfc非模态对话框
按照我们的之前的做法,先新建工程. 把基本的内容都添加上. 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算. 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加. 前期准备 ...
- VS2010/MFC对话框:非模态对话框的创建及显示
非模态对话框的创建及显示 上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切 ...
随机推荐
- Uva11732(trie)
题意:给你n个字符串 用strcmp()两两比较 ,求字符比较的总次数 分析: 数据量很大我们考虑用孩子兄弟表示法来表示字典树 #include <cstdio> #include < ...
- mssql server 2005还原数据库bak文件与“备份集中的数据库备份与现有的xx数据库不同”解决方法
mssql server 2005还原数据库bak文件,网站使用虚拟主机建站会经常遇到,一般情况下,主机商有在线的管理程序,但有时候没有的话,就需要本地还原备份sql数据库了.这种情况mssql se ...
- .Net高级技术
本次课程中讲的有的东西都是根据初学者的认知规律进行了调整,并不是严谨的,比如很多地方在多AppDomain条件下很多说法就不对了,但是说严谨了大家就晕了,因此继续不严谨的讲吧. 很多面试题都在这阶段的 ...
- 自己手写http服务器 http响应信息的封装与测试
package cn.edu.sss.httpServer; import java.io.BufferedWriter; import java.io.IOException; import jav ...
- bzoj 1432 [ZJOI2009]Function(找规律)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1432 [思路] 找(cha)规(ti)律(jie) 分析戳这儿 click here ...
- 分享两个模拟get和post方法的工具类,让应用能够与服务器进行数据交互
很久没有码字了,今天跟大家分享一个模拟get和post方法的工具类,在安卓应用中很多都需要跟服务器进行数据交互,这需要两方面的配合,首先服务器端会给应用提供一些数据交互的接口,可是怎样在应用中去调用呢 ...
- 《Data-Intensive Text Processing with mapReduce》读书笔记之一:前言
暑假闲得蛋痒,混混沌沌,开始看<Data-Intensive Text Processing with mapReduce>,尽管有诸多单词不懂,还好六级考多了,虽然至今未过:再加上自己当 ...
- shark错误:Query returned non-zero code: -101
环境:shark(0.11分支编译)+spark 0.8+hive 0.11(编译)+hadoop 2.00 cdh4.4 用sharkserver的方式执行一段时间后,通过kit-b8连接到ki ...
- linux内核中与进程相关的数据结构(基于linux3.16-rc4)
1.进程描述符 struct task_struct { volatile long state; ....... struct list_head tasks; ....... struct mm_ ...
- ubuntu 的 apt-get update 出现404错误时,ubuntu 版本也 end of life 了的解决方案
xmodulo.com/how-to-fix-apt-get-update-error-on-ubuntu.html 如果是依赖没找到,可以用 sudo apt-get install -f 先补齐依 ...