学习c++的目的就是为了使用封装好的类。而最最经典的封装类当然是微软的MFC窗体程序类。

学习MFC编程之前要学习c++的主要知识,掌握c++的基本编程思想。

以下就看下我学习的MFC模态对话框的数据传递。

首先。什么叫做模态对话框呢?模态对话框指的是当弹出这种对话框的时候,程序不能对应除了此对话框外其它的窗体的响应。直到关闭了这个对话框,程序才干响应其它的对话框的响应。非模态对话框即使弹出也能响应程序其它的窗体而不须要等到此窗体的关闭。那么MFC中怎么才干弹出模态对话框呢?事实上非常easy,首先创建这种一个窗体资源,然后给这个资源绑定一个自己的类,这个类要继承于其它的类。比方CDialog。在程序中的响应函数中,先定义这种一个类的对象dlg,然后调用dlg.doModal()便能够了。

关于模态对话框和主对话框之间的数据传递能够使用四种不同的方法实现:

1. 全局变量。这个方案尽管能够实现这种数据传递功能,可是没有体现出c++的面向对象的机制;

2. AfxGetMainWnd方法的使用;这个方案是通过获取主对话框的指针,然后利用这个指针获取主对话框上的对象的内容;

3. GetParent()函数的方法;这个方案能够获取父对话框的指针,然后通过这个指针进行对应的操作;

4. 成员变量和成员函数的方法;假设成员变量是私有的,那么我们须要定义成员函数才干对这种变量进行操作,可是为了方便,我们能够定义一个公有的指向主对话框的指针。

再谈MFC学习——模态对话框的数据传递的更多相关文章

  1. MFC中模态对话框和非模态对话框的差别

    在MFC中有模态对话框和非模态对话框,那这两种有什么差别呢. 又都是用于什么场合呢. 首先,要弄清楚2种对话框是怎样创建的. 然后要弄清楚2种对话框有什么差别,可能从表面上看,模态会堵塞主对话框.可原 ...

  2. VS2010/MFC:模态对话框及其弹出过程

    模态对话框及其弹出过程 加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有些了解了,有个好的开始对于以后的学习大有裨益.趁热打铁,这一节讲讲什么是模态对话框和非模态对话框,以及模态对话框怎 ...

  3. mfc非模态对话框

    按照我们的之前的做法,先新建工程. 把基本的内容都添加上. 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算. 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加. 前期准备 ...

  4. MFC非模态对话框中屏蔽ESC键

    个人的编程经验认为:对于非模态对话框,按下ESC键和点击红叉都会响应OnCancel()函数,而不会去响应OnClose()函数. 我们都知道,如果想屏蔽Enter键,只须重写OnOK()函数即可(重 ...

  5. MFC非模态对话框销毁

    非模态对话框需要重载OnCanel方法, 并调用DestroyWindow, 且不能调用基类的OnCanel重载PostNcDestroy, 需要delete掉this指针 // Overrides  ...

  6. MFC学习之对话框---对话框之间的domodle 数据传递

    if(IDOK==data.DoModal()){tx->m_gao=data.m_he;tx->m_kuan=data.m_wi;tx->m_jiao=data.m_jiaoju; ...

  7. MFC中两个对话框之间数据传递

    以下是在网上参考的一篇文章,网址:https://blog.csdn.net/foreverhuylee/article/details/21707197 这里有两种情况, 第一种情况是: (在一个基 ...

  8. python Django html 一对多数据实例 模态对话框添加数据

  9. objectarx MFC 非模态对话框为当前焦点

    dialog.h afx_msg LRESULT OnAcadKeepFocus(WPARAM, LPARAM); dialog.cpp BEGIN_MESSAGE_MAP(CTextDialog, ...

随机推荐

  1. HttpUrlConnection使用详解--转AAAAA

    http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpConnection.html HttpUr ...

  2. c++ const的用法

    1.修饰成员变量 int value=0; int *p=&value; const int *p_c=&value;//指针指向常量,但是指针所指向的地址可以修改(int const ...

  3. Python - 作为浅拷贝的list对象乘法

    运行下面这段代码 # !/usr/bin/env python3 # -*- coding=utf-8 -*- temp_a = [[0]*2]*3 temp_b = [[0]*2 for i in ...

  4. VMware Workstation 10 简体中文安装教程

    分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 分享到 一键分享 QQ ...

  5. springcloud(十四)、ribbon负载均衡策略应用案例

    一.eureka-server服务中心项目不再创建 二.eureka-common-empdept公共组件项目不再掩饰 三.创建eureka-client-provider-empdept-one提供 ...

  6. 18-2-call和apply

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Linux 下 cs8900a 的移植说明

    为 cs8900a 建立编译菜单 1. 拷贝到文件 把 cs8900a 的压缩包拷贝到 arm 用户下的 dev_home/localapps/ [arm@localhost localapps]$ ...

  8. Ascii码 、16进制与 char

            对于一个非计算机专业出身的人,以前只知道计算机中所有的数据都是以二进制形式进行存储,计算,通信的.但是人类文明中,主要的信息展现以文本的形式展现的.如果使用内存中的0和1来表示文本一直 ...

  9. loj2494 [hnoi2018]寻宝游戏

    题意:给你n个元素的数组a.你可以在每个元素之前添加and和or的符号.每次询问最后变成r有多少种添号情况. n<=1000,m<=5000,q<=1000. 标程: #includ ...

  10. 容斥原理——hdu2204dfs深搜

    /* 枚举素数幂p 然后求k^p<=n 的 k的个数 因为 k^p1*p2==k^p2*p1,所以这两种情况是多算的,所以要进行容斥 减去两个质数幂相乘的,再加上三个质数幂相乘的 因为2*3*5 ...