MFC中的invalidate函数是什么意思啊?
参数为TRUE时,说要擦出背景,可是我不太明白,背景是什么东西。我试过把参数改成FALSE时,也没用变化。窗口背景是指客户区上面显示的所有东西么?还是其他别的??...
参数为TRUE时,说要擦出背景,可是我不太明白,背景是什么东西。
我试过把参数改成FALSE时,也没用变化。
窗口背景是指客户区上面显示的所有东西么?还是其他别的?? 展开
我试过把参数改成FALSE时,也没用变化。
窗口背景是指客户区上面显示的所有东西么?还是其他别的?? 展开
6个回答
展开全部
Invalidate函数是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。
类似的还有下面的两个函数:
UpdateWindow()只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。
RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。
类似的还有下面的两个函数:
UpdateWindow()只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。
RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。
展开全部
invalidate (bool)可以使窗口无效,引起窗口重绘.实际上是向窗口发了一个WM_PAINT消息。
参数的意思是:是否擦除窗口上的元素。比如你在窗口上画了一条线或在窗口上输出一串文本,这些都可以称为窗口元素或数据.
参数的意思是:是否擦除窗口上的元素。比如你在窗口上画了一条线或在窗口上输出一串文本,这些都可以称为窗口元素或数据.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的貌似很牛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更新区域不是空的,并没有其他应用程序中的邮件队列的窗口。
在网上查了一些单词,再有自己翻译了一些。有不准 的地方你自己再查查。
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更新区域不是空的,并没有其他应用程序中的邮件队列的窗口。
在网上查了一些单词,再有自己翻译了一些。有不准 的地方你自己再查查。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小样你还恶魔猎手,连invalidate都不懂,
看来vc还是嫩到家了
看来vc还是嫩到家了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重绘窗口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询