原文链接地址:https://blog.csdn.net/sufwei/article/details/3635489 ON_COMMAND //用来响应相应工具栏和菜单栏的命令WM_COMMAND,不用自己解开WM_COMMAND中wParam和lParam中传送的控件ID. ON_MESSAGE //用来响应自定义消息,能够处理所有的消息响应,在程序中需要自己设定相应的消息响应函数. ON_NOTIFY //是控件向其父窗口发送消息处理的宏,扩展了ON_COMMAND的功能,使用了相应的NM…
ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY 是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景.在Windows3.1里,控件会将mouse, keybord等等的消息通知它的父窗口, 使用的消息就只有WM_COMMAND, 事件种类和控件ID被包含在wParam中, 控件的句柄包含在lParam中.由于wParam和 lParam已经满了,当控件要向父窗口发送其它特殊消息同时附带很多信息的时…
1. void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效.窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘.这时Windows会在应用程序的消息队列中放置WM_PAINT消息.MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口.视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnD…
问题 问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同? OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似. 至于不见了的问题简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画.一般Windows回发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化).非客户区的重画系统自己搞定了,而客户区的重画需要我们自己来完成.这就需要OnDraw()或 …
问题 问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同? OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似. 至于不见了的问题简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画.一般Windows回发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化).非客户区的重画系统自己搞定了,而客户区的重画需要我们自己来完成.这就需要OnDraw()或 …
onmouseover与onmousemove的区别是:当鼠标移过当前对象时就产生了onmouseover事件,当鼠标在当前对象上移动时就产生了onmousemove事件,只要是在对象上移动而且没有移出对象的,就是onmousemove事件.…
字符串前面加L表示该字符串是Unicode字符串. _T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变.因此,Visual C++里边定义字符串的时候,用_T来保证兼容性.VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改. 以下是别人的总结: 一.在字符串前加一个L作用:     如 L"我的字符串" 表示将ANSI字符串转换成unico…
转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘图:2. 所谓客户区指窗口区域中去掉边框.标题栏.菜单栏.工具栏.状态栏等之外的部分,它是用户可以操作的区域:3. 在使用CClientDC进行绘图时,一般要调用GetClientRect()函数来获取客户区域的大小:4. CClientDC类在构造函数中调用Windows API函数GetDC(),在析构时…
转自:http://blog.csdn.net/eddy_liu/article/details/8474677 目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构.这种程序框架与简单程序框架之间的重要区别就在于形成应用程序的主窗口不只需要一个类的对象,而是需要3个对象: 框架窗口类(CFrameWnd)对象 视图类(CView)对象 文档类(CDocument)对象 框架窗口类(CFrameWnd)对象作为窗口的框架,视图类(CView)的对象作为贴附在框架窗口上的用户区,二者…
Window消息可以分为三类:(1)标准Window消息(CWnd子类处理),(2)控制通知消息(CWnd子类处理),(3)命令消息(应用中的5类都可以).所有派生自CCmdObjec对象的类都可以处理Windows消息. (1)前缀以“WM_  ”开头,但是WM_COMMAND消息除外.如窗口重回WM_PAINT,WM_QUIT (2)WM_COMMAND消息,窗口上的各种空间发出的消息 (3)WM_COMMAND消息,只是指控制界面发出的消息,如菜单项与工具栏的按钮操作.MFC为“标准菜单”…