MFC中应用对象的成员:窗口指针m_pMainWnd说明
CVC_MFC_firstDlg dlg; //定义对话框对象
m_pMainWnd = &dlg; //这个定义的对话框 dlg 成为主窗口
应用程序对象成员变量m_pMainWnd是一个窗口指针,即主窗口的指针。在初始化实例时,要给这个指针进行赋值。如果这个指针为空,则在默认的接下来的消息循环中,将不继续往下执行,也就是说,程序执行完初始化后,程序就退出了。只要这个指针的值非空且合法,程序就能够继续执行下去。你可以在初始化实例时创建N多个窗口,而只有这个指针指向的才是主窗口。在初始化实例函数中,必须使用动态new分配空间来创建窗口对象,才能保证创建的窗口一直存在。当然可以在函数中使用局部变量,但是函数执行完毕,窗口就消失了。如果在函数内使用静态对象或者类成员对象就会出问题,静态对象窗口关闭时会出现内存错误,成员对象窗口关闭时会因为内存释放出错。因此,要在初始化实例创建多个窗口,需要使用new来分配内存创建。
之所以出现内存错误,是因为窗口对象没有窗口句柄,导致内存释放出错。只要给予一个合适的窗口句柄,就可以使用类成员窗口对象和静态窗口对象来创建窗口了。可以创建一个临时对象,把句柄赋值给它或者直接创建一个句柄赋值给它。
MFC中应用对象的成员:窗口指针m_pMainWnd说明的更多相关文章
- (转)MFC中Doc,View,MainFrmae,App各指针的互相获取
App是应用域,所有的域中的东西都可以通过全局函数访问到它. MainFrame是主框架,也基本可以用全局函数访问到. MainFrame下是若干个ChildFrame,ChildFrame中若干个V ...
- MFC中 SDI/MDI框架各部分指针获取方式
VC MFC SDI/MDI框架各部分指针获取方式 整理总结一下,希望能帮助到别人. 获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CV ...
- 关于C++中的非静态类成员函数指针
昨天发现了一个问题,就是使用对类中的非静态成员函数使用std::bind时,不能像普通函数一样直接传递函数名,而是必须显式地调用&(取地址),于是引申出我们今天的问题:非静态类成员函数指针和普 ...
- C++中怎样获取类成员的指针
我们都知道C++ class中有三种成员函数,static(静态的),nonstatic(非静态的),virtual(虚拟的)各种成员函数的指针各有差别,下面是一个完整的样例:(注意红颜色的差别 ...
- 在MFC中实现对象之间数据的传递。
方法一: 第一步:在VS2010里面新建一个单文档MFC程序. 第二步:在App类里面的头文件里面 定义性声明一个变量 ,见下面程序 public: CString ii; 第三步:在App类的实现文 ...
- WCF中传递对象的成员变量行不通?
今早通过WCF服务添加对象到数据库,有一个变量始终没有传过来 定义: public bool isLogin; 修改成 private bool _isLogin; public bool isLog ...
- MFC 中MessageBox 显示在所有窗口的最上面
int MessageBox( HWND hWnd, // handle of owner window LPCTSTR lpText, // address of ...
- 从汇编看c++中成员函数指针(一)
下面先来看c++的源码: #include <cstdio> using namespace std; class X { public: int get1() { ; } virtual ...
- C++中的对象指针
指向对象的指针 在建立对象的时候,变异系统会给每一个对象分配一定的存储空间,以存放其成员. 对象空间的起始地址就是对象的指针.可以定义一个指针变量,用来存放对象的指针. 一个简单的示例1.1: #in ...
随机推荐
- C# 中英文符号互转
/// 转全角的函数(SBC case) /// ///任意字符串 /// 全角字符串 /// ///全角空格为12288,半角空格为32 ///其他字符半角(33 ...
- eclipse项目中丢失的R包找回方法
当我们项目中的R文件丢失的时候会令我们痛苦不已,怎样找回呢?总不能删了吧,那样心血会毁于一旦的,我们肯定不会那样做,那要怎么办呢?我这里提供三种方法: 一,一般情况下这样: 方法一:选中 ...
- red5 自定义文件存放目录
Red5 流媒体服务器 自定义文件存放目录 Red5在正常情况下,安装之后文件必须存放在Red5安装目录下的oflaDemo\streams中,不能自定义存放目录,例如Red5 安装在C盘,但是我的文 ...
- Django之用户登录实例
1,django目录结构(需要用到的文件用红箭头标记): 2,首先在templates模版目录下创建login.html文件 3,将bootstrap导入到static/plugins目录下 PS ...
- Liunx文件解压与压缩
文件压缩和解压缩 常见压缩格式如下 .zip .gz .bz2 .tar.gz .tar.gz2 .zip压缩 zip 压缩文件名 源文件 压缩文件 zip -r(递归) 压缩文件名 源目录 压缩目录 ...
- 下一个计划 : .NET/.NET Core应用性能管理系统
前言 最近几个月一直在研究开源的APM和监控方案,并对比使用了Zipkin,CAT,Sky-walking,PinPoint(仅对比,未实际部署),Elastic APM,TICK Stack,Pro ...
- SpringMVC 上传下载 异常处理
SpringMVC 上传下载 异常处理 上一章节对SpringMVC的表单验证进行了详细的介绍,本章节介绍SpringMVC文件的上传和下载(重点),国际化以及异常处理问题.这也是SpringMVC系 ...
- python学习笔记 函数
形式: def function(a,b,c=0,*args,**kw)#a,b必选参数,*args可变参数,**kw关键字参数 1.函数的返回值可以是多个参数.多个参数时,实际上返回的是一个tupl ...
- spring boot 错误,求大神帮解决
Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attr ...
- oracle 物化视图 job
在oracle数据库里边,创建物化视图之后,系统在DBMS_jobs文件夹下,会自动创建相应的job,右键执行job的时候报错如下: 问题:ORA-12012: 自动执行作业 198 出错 ORA-1 ...