深入浅出mfc随笔——MFc程序的生死因果
1:窗口的显示与更新
CMyWinApp theApp___AfxWinInit___pApp->Initapplication____pApp->InitInstance____m_pMainWnd=new CMyFramWnd()____CMyFramewnd中Create(NULL,"fds",....);____m_pMainWnd->showWindow(m_nCmdShow);____m_pMainwnd->updatewindow()____pApp->run();
其中pApp指向CMyWinApp对象。CMywinapp继承自CWinApp。而Run又是CWinApp的一个虚函数,并没有改写他。所以相当与调用CWinApp::Run,在该函数中又实际的调用了CWinThread,CWinThread中的pumpMessage真正的做了消息循环的事情。
获得的消息如何交给适当的程序去处理呢。sdk程序的做法是调用DispatchMessage.把消息丢给窗口函数。mfc也是如此。在afxenddeferregisterclass程序代码。他在注册四种窗口类之前已经指定窗口函数为wndcls.lpfnwndproc=defwindowproc;
虽然窗口函数被指定为defwindowproc成员函数。但事实上消息并不是被送往该处。而是afxwndproc的全局函数中。再通过message map机制把消息和处理函数连接在一起。
然后程序的死亡。wm_close____默认函数_____destroywindow发出wm_destroy_____postquitmessage发出wm_quit_____exitinstance
注意:如果类的成员函数是一个callback函数。你必须声明它为static。才能把C++编译器加诸于函数的一个隐藏参数this去掉。凡是你设计而却由windows系统调用的函数。统称为callback函数。这些函数都有一定的类型。
C++的static成员函数的特性是。即使对象还没有产生。static对象也已经存在(函数或变量都如此),换句话说,对象还没有产生之前你已经可以掉用类的static函数或使用类的static变量了
转载于:https://www.cnblogs.com/lzjsky/archive/2010/06/21/1761706.html
深入浅出mfc随笔——MFc程序的生死因果相关推荐
- 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)
第六章:MFC程序的生死因果 本章主要是从MFC程序代码中,找出一个windows程序原本该有的程序入口点.窗口类注册.窗口产生.消息循环.窗口函数等操作.抽丝剥茧彻底理解一个MFC程序的诞生与结束. ...
- 六、MFC 程序的生死因果 (学习笔记)
MFC程序的生死因果 项目HELLO 理想如果不向实际做点妥协,理想就会归于尘土. 中华民国还得十次革命才得建立,对象导向怎能把一切传统都抛开. 以传统的C/SDK 撰写Windows 程序,最大的好 ...
- 《深入浅出MFC》第六章 MFC程序的生死因果
SDK程序设计的第一要务是理解最重要的数个API函数的意义和用法,MFC程序设计的第一要务则是理解几个最重要的类,最基本的两个类为CWin App和CFrameWnd. 开发MFC程序需要的函数库:W ...
- MFC程序的生死因果
MFC程序的来龙去脉(causal relations) MFC的程序如何运行,第一件事情就是找出MFC程序的进入点.MFC程序也是Windows程序.所以它应该也有一个WinMain.但在程序中好 ...
- MFC程序的剖析及生死因果揭秘
本文剖析MFC底层的程序脉络,主要是由MFC深入浅出的学习笔记而得. SDK下Windows程序的编程:对于一般SDK下Windows程序的编程,其主要步骤如下: 各步骤说明: 1:WinMain函数 ...
- MFC技术内幕系列之(一)---MFC应用程序“生死因果”内幕
/// /********* 文章系列:MFC技术内幕系列***********/ /************ ...
- MFC应用程序“生死因果”内幕
/// /********* 文章系列:MFC技术内幕系列***********/ /************MFC ...
- 使用 MFC 编写打印程序
摘要 本文首先介绍了利用MFC提供的文档视图框架来实现一个打印程序,实现打印预览,在此基础上,同时通过对MFC源代码的深入探讨,提出了利用该方法在对话框上用MFC实现打印功能,结果表明,利用MFC实现 ...
- MFC的框架程序分析3
本文将剖析基于MFC的框架程序,探讨MFC框架程序的内部组织结构,MFC是微软为了简化程序员的开发工作而设计的一套c++类集合,利用这些类有 效地帮助程序员完成windows应用程序开发. 代码结构 ...
最新文章
- php csv,php csv操作类代码
- 协调器太多,cc2530的终端或则路由器选择性加入协调器的方法
- 记一次简单的sql优化
- go语言爬虫教程python_Go语言爬虫 - Go语言中文网 - Golang中文社区
- 一个countDown在多线程调度下使用不当的分享
- Sharepoint学习笔记—ECM系列--2 管理元数据服务应用Metadata Service Application
- 【大学物理】磁场的高斯定理
- vnpy策略回测如何设置滑点手续费和size
- 视频教程-思科设备管理(CCNA魔鬼训练营系列)-思科认证
- easyui快速入门
- 几款免费开源的企业管理软件
- 华为手机能隐藏蓝牙吗_华为手机的11个隐藏功能
- mp4数据恢复:mp4视频格式化怎么恢复
- echart2文档(简单明白)
- html5+资源甘特图,VARCHART XGantt VSW资讯:HTML5甘特图中的各个资源工作时间
- 查看pip安装的python包的位置等详细信息
- java 观察者模式讲解_java观察者模式详解
- 人脸识别主板人脸识别整机如何发送闸机开关指令继电器关闸开闸
- 最新iApp源码小易工具箱源码+功能超级多
- pxe装机dhcp获取不到_Windows – PXE启动无法通过DHCP获取IP地址,但DHCP在操作系统启动时有效...