更新时间:2023-04-28 13:14
RedrawWindow,根据fuRedraw旗标的设置,重画全部或部分窗口。
SDK中的函数原型
BOOL RedrawWindow(HWND hwnd,CONST RECT* lprcUpdate,HRGN hrgnUpdate,UINT fuRedraw);
Long,非零表示成功,零表示失败。会设置GetLastError
参数 类型及说明
hwnd Long,要重画的窗口的句柄。零表示更新桌面窗口
lprcUpdate RECT,窗口中需要重画的一个矩形区域
hrgnUpdate Long,一个“区”的句柄,这个区描述了要重画的窗口区域。“区”:Region
fuRedraw Long,规定具体重画操作的旗标。下列常数可组合使用,从而进行复杂的重画行动
RDW_ERASE 重画前,先清除重画区域的背景。也必须指定RDW_INVALIDATE
RDW_FRAME 如非客户区包含在重画区域中,则对非客户区进行更新。也必须指定RDW_INVALIDATE
RDW_INTERNALPAINT 即使窗口并非无效,也向其投递一条WM_PAINT消息
RDW_INVALIDATE 禁用(屏蔽)重画区域
RDW_NOERASE 禁止删除重画区域的背景
RDW_NOFRAME 禁止非客户区域重画(如果它是重画区域的一部分)。也必须指定RDW_VALIDATE
RDW_NOINTERNALPAINT 禁止内部生成或由这个函数生成的任何待决WM_PAINT消息。针对无效区域,仍会生成WM_PAINT消息
RDW_VALIDATE 检验重画区域
RDW_ERASENOW 立即删除指定的重画区域
RDW_UPDATENOW 立即更新指定的重画区域
RDW_ALLCHILDREN 重画操作包括子窗口(前提是它们存在于重画区域)
RDW_NOCHILDREN 重画操作排除子窗口(前提是它们存在于重画区域)
如针对桌面窗口应用这个函数,则应用程序必须用RDW_ERASE旗标重画桌面