摘自windows程序设计第五版
2014-11-21 10:18
232 查看
在处理WM_PAINT消息时,使用这种方法。它涉及BeginPaint和EndPaint两个函数,这两个函数需要窗口句柄(作为参数传给窗口消息处理程序)和PAINTSTRUCT结构的变量(在WINUSER.H表头文件中定义)的地址为参数。Windows程序写作者通常把这一结构变量命名为ps并且在窗口消息处理程序中定义它:
在处理WM_PAINT消息时,窗口消息处理程序首先呼叫BeginPaint。BeginPaint函数一般在准备绘制时导致无效区域的背景被擦除。该函数也填入ps结构的字段。BeginPaint传回的值是设备内容句柄,这一传回值通常被保存在叫做hdc的变量中。它在窗口消息处理程序中的定义如下:
HDC数据型态定义为32位的无正负号整数。然后,程序就可以使用需要设备内容句柄的TextOut等GDI函数。呼叫EndPaint即可释放设备内容句柄。
一般地,处理WM_PAINT消息的形式如下:
在处理WM_PAINT消息时,必须成对地呼叫BeginPaint和EndPaint。如果窗口消息处理程序不处理WM_PAINT消息,则它必须将WM_PAINT消息传递给Windows中DefWindowProc(内定窗口消息处理程序)。DefWindowProc以下列代码处理WM_PAINT消息:
这两个BeginPaint和EndPaint呼叫之间中没有任何叙述,仅仅使先前无效区域变为有效。但以下方法是错误的:
Windows将一个WM_PAINT消息放到消息队列中,是因为显示区域的一部分无效。如果不呼叫BeginPaint和EndPaint(或者ValidateRect),则Windows不会使该区域变为有效。相反,Windows将发送另一个WM_PAINT消息,且一直发送下去。
在处理WM_PAINT消息时,使用这种方法。它涉及BeginPaint和EndPaint两个函数,这两个函数需要窗口句柄(作为参数传给窗口消息处理程序)和PAINTSTRUCT结构的变量(在WINUSER.H表头文件中定义)的地址为参数。Windows程序写作者通常把这一结构变量命名为ps并且在窗口消息处理程序中定义它:
PAINTSTRUCT ps ;
在处理WM_PAINT消息时,窗口消息处理程序首先呼叫BeginPaint。BeginPaint函数一般在准备绘制时导致无效区域的背景被擦除。该函数也填入ps结构的字段。BeginPaint传回的值是设备内容句柄,这一传回值通常被保存在叫做hdc的变量中。它在窗口消息处理程序中的定义如下:
HDC hdc ;
HDC数据型态定义为32位的无正负号整数。然后,程序就可以使用需要设备内容句柄的TextOut等GDI函数。呼叫EndPaint即可释放设备内容句柄。
一般地,处理WM_PAINT消息的形式如下:
caseWM_PAINT: hdc = BeginPaint (hwnd, &ps) ; 使用GDI函数 EndPaint (hwnd, &ps) ; return 0 ;
在处理WM_PAINT消息时,必须成对地呼叫BeginPaint和EndPaint。如果窗口消息处理程序不处理WM_PAINT消息,则它必须将WM_PAINT消息传递给Windows中DefWindowProc(内定窗口消息处理程序)。DefWindowProc以下列代码处理WM_PAINT消息:
case WM_PAINT: BeginPaint (hwnd, &ps) ; EndPaint (hwnd, &ps) ; return 0 ;
这两个BeginPaint和EndPaint呼叫之间中没有任何叙述,仅仅使先前无效区域变为有效。但以下方法是错误的:
case WM_PAINT: return 0 ; // WRONG !!!
Windows将一个WM_PAINT消息放到消息队列中,是因为显示区域的一部分无效。如果不呼叫BeginPaint和EndPaint(或者ValidateRect),则Windows不会使该区域变为有效。相反,Windows将发送另一个WM_PAINT消息,且一直发送下去。
相关文章推荐
- 《Windows 程序设计(第五版,珍藏版)》第I部分 关于图的那些事儿 学习总结
- Windows程序设计第五版——源代码001之HelloMsg.c
- Windows程序设计第五版
- Windows程序设计第五版——源代码002之SCRNSIZE.c
- Windows程序设计第五版——源代码003之HELLOWIN.c
- Windows程序设计第五版章节记录
- 摘自《Windows 程序设计》一书
- windows程序设计第五版 第六章 KEYVIEW1.c
- windows程序设计-第五版--读书笔记(1)---有些是书上文字拷贝
- 《Windows 程序设计(第五版,珍藏版)》第I部分 基础知识 学习总结
- C语言全局时钟(Windows程序设计 第五版 )
- 消息处理机制-WINDOWS程序设计的难点(摘自Windows程序设计开发指南)
- Windows程序设计 (第五版) 中文版+英文原版下载
- Windows程序设计第五版读书笔记之一
- windows程序设计-第五版--读书笔记(2)--宽字符集和Unicode--文中内容摘取
- 关于WIN32窗体ID(Windows程序设计第五版)
- Windows程序设计第五版——源代码002之SCRNSIZE.c
- 关于WIN32窗体ID(Windows程序设计第五版)
- Windows程序设计第五版(清华出版…
- windows程序设计第五版 第四章SYSMETS3.C 示例分析(自己的笔记)