首页 > 学院 > 开发设计 > 正文

InvalidataRect函数

2019-11-09 20:50:59
字体:
来源:转载
供稿:网友

更新区域(无效区域)指的是窗口内过时的或无效的需要重新绘制的区域。MiniGUI 根据需要更新的区域为应用程序产生MSG_PAINT 消息,应用程序也可以通过设置无效区域来产生MSG_PAINT 消息。

应用程序可以使用InvalidateRect 函数来使窗口的某一区域无效。该函数原型如下: BOOL GUIAPI InvalidateRect (HWND hWnd, const RECT* PRc, BOOL bEraseBkgnd)

各参数意义如下:

hWnd 需要更新的窗口句柄prc 指向无效矩形的指针bEraseBkgnd 是否擦除窗口背景

InvalidateRect 函数把给定的矩形区域添加到指定窗口的更新区域中。该函数把给定的矩形和应用程序窗口先前的更新区域合并,然后投递一MSG_PAINT 消息到该窗口的消息队列中。

如果bEraseBkgnd 为TRUE,应用程序窗口将收到一个MSG_ERASEBKGND 消息,窗口过程可以处理该消息,自行擦除窗口背景。如果应用程序不处理MSG_ERASEBKGND 消息而将它传给DefaultMainWinProc,MiniGUI 对MSG_ERASEBKGND 消息的默认处理方式是以窗口的背景色为画刷擦除背景。

窗口背景是指绘制窗口之前用于填充客户区的颜色和风格。窗口背景可以覆盖屏幕上窗口客户区所在区域的原有内容,使得应用程序的输出显示不受屏幕已有内容的干扰。

MSG_ERASEBKGND 消息的lParam 参数包含了一个RECT 结构指针,指明应该擦除的矩形区域,应用程序可以使用该参数来绘制窗口背景。绘制完成之后,应用程序可以直接返回零, 无需调用DefaultMainWinProc 进行缺省的消息处理。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表