有关美化界面消息之间的关系
2012-11-03 00:33
162 查看
参考文章:白乔原创:VC之美化界面篇
1.WM_PAINT与WM_ERASEBKGND消息的关系 由Win32的知识可知,在WM_PAINT的消息处理函数中,绘制之前首先需要调用BeginPaint。BeginPaint函数会发送WM_ERASEBKGND消息(SendMessage),即直接调用消息处理函数来处理WM_ERASEBKGND消息。DefWindowProc默认处理WM_ERASEBKGND是用窗口注册的画刷刷客户区,即背景。 Note: 当然通过调用InvalidateRect(代码产生WM_PAINT消息) BOOL InvalidateRect( HWND hWnd, // handle to window CONST RECT* lpRect, // rectangle coordinates BOOL bErase // erase state); 来产生WM_PAINT消息,可以通过指定bErase为FALSE,则不会在BeginPaint中发送WM_ERASEBKGND消息。
2.我总结的大体各美化界面消息间的流程如下:
WM_PAINT { WM_ERASEBKGND //刷背景 { WM_CTLCOLOR //获取刷背景的画刷,不响应该消息则默认为窗口注册的画刷 { ...... } ...刷背景... } WM_CTLCOLOR //设置有关Text的相关特性,如字体、前景色、背景色等... { ...... } //具体开始绘制 { ...... //绘制某具体项1 { NM_CUSTOMDRAW //由程序员客制部分属性 { } 具体绘制(未开放) } ...... //绘制某具体项2 { NM_CUSTOMDRAW //由程序员客制部分属性 { } 具体绘制(未开放) } ...... } }
相关文章推荐
- windows程序消息机制(Winform界面更新有关)
- (C++)编译器、界面库和 IDE 之间的关系
- windows应用程序,操作系统,计算机硬件之间的相互关系———消息队列
- 深入理解Looper、MessageQueue、Handler之间的关系,Android的异步消息机制
- windows程序消息机制(Winform界面更新有关)
- 有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
- (转)有关Auto encoder 和Denoising auto encoder分别和PCA之间的关系(学习笔记)
- Storm有关worker、task、spout/bolt、executor、component之间的关系
- android的消息处理机制(图+源码分析)——Thread,Looper,MessageQueue,Message,Handler之间的关系
- Android 异步消息处理机制 让你在深入了解 Looper、Handler、Message之间的关系
- Android Handler MessageQueue Loop Message之间的关系以及消息发送响应流程
- android教程:规划界面和他们之间的关系详细说明
- Linux图形界面知识(介绍X、X11、GNOME、Xorg、KDE等之间的关系)
- 安卓基础:Handler, Looper,消息队列,线程及主线程之间的关系
- 有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
- windows程序消息机制(Winform界面更新有关)--转
- Postfix有关Virtual、Aliases、虚拟表等概念之间的关系
- Android消息处理机制---Looper、Handler、Message之间的关系
- 项目中有关a标签和onclick之间的执行关系
- 关于linux图形界面的基本知识 linux、X、Xfree86、KDE、gnome之间的关系