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程序的生死因果相关推荐

  1. 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)

    第六章:MFC程序的生死因果 本章主要是从MFC程序代码中,找出一个windows程序原本该有的程序入口点.窗口类注册.窗口产生.消息循环.窗口函数等操作.抽丝剥茧彻底理解一个MFC程序的诞生与结束. ...

  2. 六、MFC 程序的生死因果 (学习笔记)

    MFC程序的生死因果 项目HELLO 理想如果不向实际做点妥协,理想就会归于尘土. 中华民国还得十次革命才得建立,对象导向怎能把一切传统都抛开. 以传统的C/SDK 撰写Windows 程序,最大的好 ...

  3. 《深入浅出MFC》第六章 MFC程序的生死因果

    SDK程序设计的第一要务是理解最重要的数个API函数的意义和用法,MFC程序设计的第一要务则是理解几个最重要的类,最基本的两个类为CWin App和CFrameWnd. 开发MFC程序需要的函数库:W ...

  4. MFC程序的生死因果

    MFC程序的来龙去脉(causal relations)  MFC的程序如何运行,第一件事情就是找出MFC程序的进入点.MFC程序也是Windows程序.所以它应该也有一个WinMain.但在程序中好 ...

  5. MFC程序的剖析及生死因果揭秘

    本文剖析MFC底层的程序脉络,主要是由MFC深入浅出的学习笔记而得. SDK下Windows程序的编程:对于一般SDK下Windows程序的编程,其主要步骤如下: 各步骤说明: 1:WinMain函数 ...

  6. MFC技术内幕系列之(一)---MFC应用程序“生死因果”内幕

     ///                      /********* 文章系列:MFC技术内幕系列***********/                      /************ ...

  7. MFC应用程序“生死因果”内幕

    ///                      /********* 文章系列:MFC技术内幕系列***********/                      /************MFC ...

  8. 使用 MFC 编写打印程序

    摘要 本文首先介绍了利用MFC提供的文档视图框架来实现一个打印程序,实现打印预览,在此基础上,同时通过对MFC源代码的深入探讨,提出了利用该方法在对话框上用MFC实现打印功能,结果表明,利用MFC实现 ...

  9. MFC的框架程序分析3

    本文将剖析基于MFC的框架程序,探讨MFC框架程序的内部组织结构,MFC是微软为了简化程序员的开发工作而设计的一套c++类集合,利用这些类有 效地帮助程序员完成windows应用程序开发. 代码结构 ...

最新文章

  1. php csv,php csv操作类代码
  2. 协调器太多,cc2530的终端或则路由器选择性加入协调器的方法
  3. 记一次简单的sql优化
  4. go语言爬虫教程python_Go语言爬虫 - Go语言中文网 - Golang中文社区
  5. 一个countDown在多线程调度下使用不当的分享
  6. Sharepoint学习笔记—ECM系列--2 管理元数据服务应用Metadata Service Application
  7. 【大学物理】磁场的高斯定理
  8. vnpy策略回测如何设置滑点手续费和size
  9. 视频教程-思科设备管理(CCNA魔鬼训练营系列)-思科认证
  10. easyui快速入门
  11. 几款免费开源的企业管理软件
  12. 华为手机能隐藏蓝牙吗_华为手机的11个隐藏功能
  13. mp4数据恢复:mp4视频格式化怎么恢复
  14. echart2文档(简单明白)
  15. html5+资源甘特图,VARCHART XGantt VSW资讯:HTML5甘特图中的各个资源工作时间
  16. 查看pip安装的python包的位置等详细信息
  17. java 观察者模式讲解_java观察者模式详解
  18. 人脸识别主板人脸识别整机如何发送闸机开关指令继电器关闸开闸
  19. 最新iApp源码小易工具箱源码+功能超级多
  20. pxe装机dhcp获取不到_Windows – PXE启动无法通过DHCP获取IP地址,但DHCP在操作系统启动时有效...

热门文章

  1. makefile中使用变量
  2. 嵌入式开发板上常用术语
  3. 常考数据结构与算法:N皇后问题
  4. python二十二:迭代,三元表达式,列表解析
  5. python十二:字符串格式化
  6. office插入常见数学公式
  7. Spring Boot 13 之freemarker
  8. mac OS X中升级php5.5至php5.6 or php7
  9. 嵌入式中的 *(volatile unsigned int *)0x500 解释
  10. DropDownList的值去控制TextBox是否可编写