MFC中的invalidate函数是什么意思啊?

参数为TRUE时,说要擦出背景,可是我不太明白,背景是什么东西。我试过把参数改成FALSE时,也没用变化。窗口背景是指客户区上面显示的所有东西么?还是其他别的??... 参数为TRUE时,说要擦出背景,可是我不太明白,背景是什么东西。
我试过把参数改成FALSE时,也没用变化。
窗口背景是指客户区上面显示的所有东西么?还是其他别的??
展开
 我来答
小杰知音
推荐于2016-09-17 · TA获得超过2.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1326万
展开全部
  Invalidate函数是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。
类似的还有下面的两个函数:

  UpdateWindow()只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。
  RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。
C_LIFEI
推荐于2016-01-13 · TA获得超过800个赞
知道小有建树答主
回答量:431
采纳率:0%
帮助的人:350万
展开全部
invalidate (bool)可以使窗口无效,引起窗口重绘.实际上是向窗口发了一个WM_PAINT消息。
参数的意思是:是否擦除窗口上的元素。比如你在窗口上画了一条线或在窗口上输出一串文本,这些都可以称为窗口元素或数据.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友827e49f
2009-03-19 · TA获得超过233个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:151万
展开全部
楼上的貌似很牛X啊。呵!大家都是学习嘛,不告诉可以,不用这么说别人吧。
Invalidates the entire client area of CWnd.

void Invalidate(
BOOL bErase = TRUE
);
Parameters
bErase
Specifies whether the background within the update region is to be erased.
Remarks
The client area is marked for painting when the next WM_PAINT message occurs. The region can also be validated before a WM_PAINT message occurs by the ValidateRect or ValidateRgn member function.

The bErase parameter specifies whether the background within the update area is to be erased when the update region is processed. If bErase is TRUE, the background is erased when the BeginPaint member function is called; if bErase is FALSE, the background remains unchanged. If bErase is TRUE for any part of the update region, the background in the entire region, not just in the given part, is erased.

Windows sends a WM_PAINT message whenever the CWnd update region is not empty and there are no other messages in the application queue for that window.

翻译:
参数
bErase
指定是否背景更新区域内。
备注
客户端领域的特点是画下次WM_PAINT消息发生。该地区还可以验证WM_PAINT消息之前发生的ValidateRect或ValidateRgn成员函数。

该参数指定是否更新背景区域的更新处理方式。如果bErase是真值(TRUE),更新的背景是在BeginPaint成员函数被调用;如果bErase是FALSE ,背景保持不变。bErase是整的区域,而不只是在特定的一部分更新。

窗口发送WM_PAINT消息时, CWnd更新区域不是空的,并没有其他应用程序中的邮件队列的窗口。
在网上查了一些单词,再有自己翻译了一些。有不准 的地方你自己再查查。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友856121e91
2009-03-19 · TA获得超过296个赞
知道答主
回答量:479
采纳率:0%
帮助的人:213万
展开全部
小样你还恶魔猎手,连invalidate都不懂,
看来vc还是嫩到家了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yemo31995556
2009-03-20 · TA获得超过335个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:239万
展开全部
重绘窗口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式