Windows消息驱动
来源:互联网 发布:英国怎样看待美国知乎 编辑:程序博客网 时间:2024/05/12 18:03
Windows是一个消息驱动系统。它通过把消息投入应用程序消息队列中或者把消息发送给合适的窗口消息处理程序,将发生的各种事件通知给应用程序。
要在窗口的显示区域绘图,可以使用Windows的图形设备接口(GDI)函数。(如:TextOut (hdc, x, y, psText, iLength) ;)
重绘(包括新的绘制)的原理:
1。有效区域和无效区域
需要重绘的区域称为“无效区域”,不需要的称为“有效区域”,无效区域的信息保存在一个“绘图信息结构”(PAINTSTRUCT)中
2。设备内容
是GDI内部保存的数据结构,与特定的显示设备(如视讯显示器或打印机)相关。对于视讯显示器,设备内容总是与显示器上的特定窗口相关。
设备内容中的有些值是图形“属性”,这些属性定义了GDI绘图函数工作的细节。(例如,对于TextOut,设备内容的属性确定了文字的颜色、文字的背景色、x坐标和y坐标映像到窗口的显示区域的方式,以及显示文字时Windows使用的字体。)
3。重绘的过程:
①windows发送WM_PAIT消息
在一个消息队列中只有一个WM_PAINT,如果在在完成绘制之前又有需要绘制的区域,不会再次发送,只是改变PAINTSTRUCT的内容
②取得设备内容句柄(hdc)
取得了该句柄后,Windows用内定的属性值填入内部设备内容结构。
可以通过呼叫不同的GDI函数改变这些默认值。
利用其它的GDI函数可以取得这些属性的目前值。
还有其它的GDI函数能够在窗口的显示区域真正地绘图。
③绘图
再得到的HDC上绘图
如:DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
注意:可以用函数手动得到要绘制的区域,可以用函数将想要绘制的区域变为无效区域
④释放设备内容句柄
必须成对出现:
hdc = BeginPaint (hwnd, &ps) ;//取得
使用GDI函数 //处理
EndPaint (hwnd, &ps) ; //释放
hdc = GetDC (hwnd) ; //取得
使用GDI函数 //处理
ReleaseDC (hwnd, hdc) ; //释放
- Windows消息驱动
- windows消息驱动机制
- Windows的消息驱动机制
- Windows的消息驱动机制
- 对windows消息驱动的重新认识
- Windows事件驱动机制及消息循环
- Windows应用程序的消息驱动式结构
- Windows事件驱动机制及消息循环
- Windows 消息处理机制与事件驱动
- Windows 消息处理机制与事件驱动
- Windows事件驱动机制及消息循环
- 模仿Windows的消息驱动机制获得了成功
- windows的所谓事件驱动核心是消息!
- windows 的事件驱动机制和消息循环
- 消息驱动
- 消息驱动
- 【VC编程】笔记4--windows的消息驱动机制和消息对话框
- Windows消息
- 使用VC++和WINSOCK编写简单的BBS灌水程序
- jQuery - plugins插件 - Jeditable原位置编辑器插件
- HTTP服务器上断点下载文件
- B/S和C/S区别
- PCB设计规范(转载)
- Windows消息驱动
- 对Native API NtSystemDebugControl的分析
- 使用ZwSystemDebugControl的简易用户模式Rootkit检测器代码
- MFC串口操作(异步方式)源码
- jQuery - 参考资料 - onbeforeunload Event (BODY, FRAMESET, window):
- Oracle书评2006版
- PHP生成Excel,然后另存为的方法
- 强大的HA1过微软签名
- ObjectType HOOK干涉注册表操作