首页 > 编程知识 正文

window10 update,windowsupdate无法启动

时间:2023-05-03 16:46:49 阅读:62117 作者:981

Invalidate () :不会立即更新。 活动区域是窗口的整个客户区域,将客户区域标记为无效,并将WM_PAINT置于消息队列中。

InvalidateRect () :将立即更新。 可用区域指定矩形区域,绕过消息队列将WM_PAINT直接发送到窗口对象,然后立即运行WM_PAINT。

UpdateWindow () :将立即更新。 活动区域是整个窗口客户区域,首先判断客户区域是否存在无效区域,如果存在无效区域,则绕过消息队列直接将WM_PAINT发送到窗口对象,并立即运行WM_PAINT; 如果没有无效的区域,则返回,什么也不做。

详细说明如下:

语音邀请(boolberase=true );

语音验证数据(lpcrectlprect,BOOL bErase=TRUE );

语音更新窗口(;

这是三个函数的原始函数。 前两个函数具有参数bErase,指示是否在WM_PAINT消息之前发送WN_ERASEBKGND。

如果为TRUE,则发送; 由此,调用WN_ERASEBKGND消除一次背景,用背景色复盖一次所选区域;

如果为FALSE,则不发送,不擦除背景,也就是说,不覆盖背景颜色,而是直接在当前区域绘制。

关于onerasebkgnd(:

afx _ msgboolonerasebkgnd (CDC * PDC );

如果需要清除CWnd对象的背景,例如,如果要调整窗口大小,框架将调用此函数。 调用以准备绘图的无效区域。

返回值的具体含义如下

TRUE表示系统在绘制之前用背景色覆盖选定的区域一次。 默认背景颜色为白色,可以通过设置BRUSH来更改背景颜色。

FALSE表示在画画前不使用背景色直接画。

因此,为了提高效率和消除闪烁,一般将值设为FALSE。

OnEraseBkgnd发生在窗口大小发生变化等情况下,用于绘制窗口的背景。

当需要绘制窗口控件时发生OnCtlColor,用于绘制窗口控件。

调用时间:

在需要重新绘制窗口背景时调用OnEraseBkgnd :

OnPaint :此时已经调用了OnEraseBkgnd,因此在此响应函数中对背景所做的操作将覆盖在OnEraseBkgnd中所做的操作。

为了在“第一次”绘制窗口时进行响应,OnCtlColor :可以发送WM_CTLCOLOR请求以将HBRUSH传递给父窗口。

标记需要Invalidate ()重绘的无效区域,并将WM_PAINT置于消息队列中,但不会立即重绘。 这是因为WM_PAINT消息的优先级较低,需要重新绘制,直到WM_PAINT运行。 这类似于postmessage(WM_paint )。 如果在Invalidate之后执行其他语句,则程序没有机会处理WM_PAINT消息,但在函数执行之前不会执行消息处理。 因此,无论Invalidate位于函数的哪个位置,函数都将最后执行。

邀请恢复(hwnd,rect,TRUE ); 作用对象是窗口的指定区域。 无论窗口的客户区域是否无效,都向hWnd表单发送WM_PAINT消息,强制客户区域重新绘制。 为了绕过消息队列并将WM_PAINT消息直接发送到客户站点窗口,客户站点将立即运行并重新绘制WM_PAINT消息。 rect是您指定要更新的区域,不会重新绘制此区域之外的客户区域。 这样可以部分更改客户区域,防止整个客户区域重新绘制并出现闪烁。 如果最后一个参数为TRUE,则WM_erasebkgnd-WM_ppgnd消息也将发送到窗体并重新绘制背景。 执行顺序为WM_erasebkgnd-WM_pgnd

UpdateWindow ) )面向整个联系人客户区域。 此函数也绕过消息队列,将WM_PAINT消息直接发送到客户端窗口,而只将WM_PAINT消息发送到表单。 但是,在发送之前调用getupdaterect(hwnd,NULL,TRUE )来判断是否存在能够描绘的顾客区域,如果没有,则不发送WM_PAINT消息。 UpdateWindow ) )只要部分客户站点无效,就会引起整个客户站点的重新绘制。 请注意,调用UpdateWindow ()并不会禁用窗口中的客户站点。 如果窗口中的所有客户站点都有效(UpdateWindow ) ),则调用重新绘制操作不会发生。

如果要立即重新绘制客户区域,则调用Invalidate () (然后调用UpdateWindow ) ()会禁用窗口中的客户区域,并显示WM_PAINT消息然后,UpdateWindow ) )被调用时,将立即调用WM_PAINT并重新绘制客户区域。

也就是说:

邀请(假;

UpdateWindow (

相当于

invalidaterect(hwnd、NULL、False );

如果客户站点的任何部分无效,UpdateWindow ()将导致Windows在WM_PAINT消息中调用窗口过程。 如果整个客户站点有效,则不调用窗口过程。 此WM_PAINT消息不进入消息队列,而是直接从WINDOWS调用窗口过程。 窗口更新完成后立即退出,WINDOWS将控制返回到程序中UpdateWindow ()调用之后的语句。

UpdateData ()用于更新控件和变量。

参数如下:

TRUE:控件变量(将控件中显示的数据更新为控件中的变量并用于输入) )。

FALSE:变量-控件(将控件中的变量更新为控件的输出显示,用于输出显示)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。