MFC 桌面窗口重绘问题。

我现在想使用VC的MFC,在电脑的桌面上面画一个风车,当然风车要可以在桌面上面转动,这样就需要重绘电脑桌面,但是我试了好几种方法都不行。我用MFC建立的是SDI的程序,如... 我现在想使用VC的MFC,在电脑的桌面上面画一个风车,当然风车要可以在桌面上面转动, 这样就需要重绘电脑桌面,但是我试了好几种方法都不行。我用MFC建立的是SDI的程序,如果用简单的用RedrawWindow()程序运行只能客户区的内容,不能达到我的要求。求各路大神现身啊。。。。 展开
 我来答
weiyinwu
2012-03-17 · TA获得超过1540个赞
知道小有建树答主
回答量:1057
采纳率:50%
帮助的人:1141万
展开全部
得到桌面窗口的句柄,然后再绘图
HWND GetDesktopWindow(VOID);
更多追问追答
追问
图是能够画出来的了,就是不能够擦掉。
追答
当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息对窗口进行重新绘制。
Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。

UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。

RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。
blzhdm2008
2012-03-18
知道答主
回答量:18
采纳率:0%
帮助的人:10.4万
展开全部
孙鑫老师有讲过,你可以得到桌面句柄,然后对整个屏幕绘图,之后再刷新
追问
CWindowDC dc(GetDeskTopWindow());
RedrawWindow();
//这样好像不得行哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友925e4e88e
2012-03-17 · TA获得超过385个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:141万
展开全部
HWND GetDesktopWindow(VOID);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式