《笔记》孙鑫老师MFC第一讲(windows程序内部运行原理)
来源:互联网 发布:杭州全速网络 编辑:程序博客网 时间:2024/04/29 20:20
《笔记》孙鑫老师MFC第一讲(windows程序内部运行原理)
学习孙鑫老师的VC++视频终于到一半了,其中有很多东西没有真正的掌握,所以从新再来一遍,正好写上笔记记录下自己的掌握程度。
Windows程序是一种事件驱动的程序设计方法,主要是基于消息的运行。每个事件触发的消息存在与消息队列中,每次windows程序从消息队列中GetMessge(一条),然后TranslateMessge,然后DispatchMessage,在设计窗口的时候会为该窗口指定一个消息处理的函数WindowProc()用于对Get的消息进行处理,当程序得到一个WM_QUIT消息的时候结束程序的循环。
Windows程序的运行机制是,首先需要在WinMain函数中设计窗口(这里指定消息处理的函数),然后对设计的窗口进行Register,接着需要创建这个已经完成注册的窗口,并且需要用一个HWND的句柄来记录这个创建的窗口,接着ShowWindow,UpdateWindow,然后进入消息队列的循环,GetMessage,TranslateMessag,DispatchMessage,直到接受到一个WM_QUIT的消息,程序则推出,在消息处理函数中还必须在默认的消息处理中调用DefWindowProc来为应用程序没有处理的消息提供缺省的处理。
WM_QUIT,WM_DESTROY,WM_CLOSE的区别。
WM_DESTORY和WM_CLOSE都是程序员可以处理的消息,而WM_QUIT是不能被捕获的。
先说WM_CLOSE
WM_CLOSE是当用户点击"X"或者在系统菜单里选择了关闭。都会传递WM_CLOSE的消息,默认的是调用DestroyWindow函数进行处理,如果选择自己捕获该消息并且处理,应该当用户确定要关闭窗口的时候调用DestroyWindow函数,DestroyWindow函数给消息循环发送WM_Destory消息,DefWindowProc函数不会响应DestoryWindow消息,需要程序员调用PostQuitMessage来对资源进行释放。
再说WM_Destory
WM_Destroy消息不会被DefWindowProc处理,只能让程序员自己对该部分资源进行释放,如果你没有对该部分资源处理(调用PostQuitMessage(0))则销毁了窗口,但是并没有真正的结束程序,该程序的进程仍然存在。
最后WM_QUIT
WM_QUIT是由PostQuitMessage发送的,GetMessage返回FALSE,直接结束消息循环,故该消息不会被程序员捕获。
刚开始学习,错误的地方还请纠正。
COPY上这节课的例子。
- 《笔记》孙鑫老师MFC第一讲(windows程序内部运行原理)
- MFC笔记 Windows程序内部运行原理
- 孙鑫VC学习笔记:第一讲 Windows程序内部运行原理
- 孙鑫VC学习笔记:第一讲 Windows程序内部运行原理
- 孙鑫VC学习笔记:第一讲 Windows程序内部运行原理
- MFC基础:Windows内部程序运行原理
- 【MFC】1.Windows程序内部运行原理
- MFC(一)——Windows程序内部运行原理
- 《笔记》孙鑫老师MFC第二讲(C++特性)
- 孙鑫VC视频教程笔记之第一课“Windows程序的内部运行原理”
- 孙鑫MFC笔记教程(1)--Windows程序的内部运行原理
- MFC视频教程(孙鑫)学习笔记1-Windows程序内部运行原理
- MFC编程第一节:Windows程序内部运行原理
- 孙鑫老师VC++lesson1(Windows程序内部运行机制)学习笔记
- Windows程序内部运行原理
- Windows程序内部运行原理
- WINDOWS程序内部运行原理
- Windows程序内部运行原理
- 第5章 标准I/O库
- 快速启动栏的---显示桌面不见了的解决方案
- 我的第一“搏”
- 国足vs韩国 3比0啊 3比0 大胜韩国 一洗前耻 纯爷们
- 推荐一个通用的免费传真网站
- 《笔记》孙鑫老师MFC第一讲(windows程序内部运行原理)
- 央视新址火灾处理结果公布 原台长被行政降级
- java全屏独占模式
- 学好C#,应该怎么做。【转载帖子】
- 用批处理获取当前目录下所有文件的路径
- 批处理中的变量与命令set的用法
- 一个shell脚本
- MFC学习笔记(5)
- Armboot的几个简单操作指令