SDK编程中有效区域与无效区域的盲区WM_PAINT消息何时发送的。。。

简介: 相信学过MFC或者写过 用MFC写过windows应用程序的人都知道 我们可以很简单的创建一个windows应用程序但是却  不知道其中的原理  利用SDK写windows程序的人 对内部原理比较了解但是对于上来就用MFC写程序的人来说 似乎 MFC底层不可触摸  ,因为微软对windo...

相信学过MFC或者写过 用MFC写过windows应用程序的人都知道 我们可以很简单的创建一个windows应用程序但是却  不知道其中的原理 

利用SDK写windows程序的人 对内部原理比较了解但是对于上来就用MFC写程序的人来说 似乎 MFC底层不可触摸  ,因为微软对windows API 封装的太厉害了 

我曾经就 WM_PAINT 消息何时发送的以及 Valid Area(有效区域)  Invalid  Area(无效区域 )  很模糊       

 

比如说我们打开2个窗体    一个位于另一个的上面 遮住上层窗体的一部分  、、 那么上层窗体被遮住的地方就叫做 Invald Area  无效区域 那么windows 系统会通知应用程序 进行重回这个区域      

但是我们发现在 Client Area 客户区域 中只有被遮住的那部分进行了重绘。   有些人会有些不解 。。其实 windows 系统只要求应用程序对 被遮住的无效区域 进行重绘   

 

当遮住的窗体移动的时候  那么操作系统就会发出 WM_PAINT 消息 对应 MFC中的就是 OnDraw()函数 、、、进行重回操作 。  这就是无效区域的重绘

 

另外 MFC  CWnd类中的  Invalidate函数会使Client Area变得无效从而进行重绘  

 

 

 

 

 
目录
相关文章
|
开发工具 Android开发
Android 编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
  Android开发平台中,可通过TelephonyManager 获取本机号码。 TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.
1425 0
|
开发工具 Android开发
Android 编程获取手机型号,本机电话号码,sdk版本及firmware版本“.NET研究”号(即系统版本号)
  Android开发平台中,可通过TelephonyManager 获取本机号码。 TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.
1532 0