请问如何用API重绘窗口? 对,WM_PAINT中的就不会没有了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我重载了WM_PAINT消息,窗口可以重绘了,但是当另外一个窗口移到上面再拿开后,上面的文字就没有了。请问这样该如何恢复以前的信息? 在WM_PAINT消息里写字,并且,InvalidateRect()你是在什么地方调用的? InvalidateRect()在一个timer里面调用,timer用callback函数实现。 你可能不是在响应WM_PAINT消息的OnDraw函数中写的字吧是不是在别的地方写的字比如调用GetDC什么的,然后自已在程序中InvalidateRect()的?你试试改变一下窗口的大小,看看字还在不在,如果不在,我想你一定不是在WM_PAINT的消息响应函数中调用TextOut的是不是? 如果是你可以在WM_PAINT的消息响应函数中写同样的代码就成了. 你把所有的GDI输出都写在OnDraw里~~ 问题就在于InvalidateRect中rect的指针我赋的值是null于是对整个窗口的内容更新。 呵呵。你的窗口是什么?如果是对话框,在OnPaint()里显示所有内容,注意:要把显示的内容先存储到类的成员变量里。比如 CString s;(它必须是类的成员变量,不能是函数内部定义的变量!)////s.Format("%d",100);pDC->TextOut(0,0,s);/////如果是View的话,在OnDraw()里写显示的内容。 你要把所有跟显示在窗口内的文字/图形相关的数据都保存住,每次收到WM_PAINT的时候都要重新画一次! 处理WM_PAINT 消息即可. CSocket的OnReceive()响应次数过少,缓存数据被覆盖? 怎么向FormView相关联的Dialog发送消息或者更新显示内容? 单色BMP图,如何用VC实现类似delphi的ScanLine功能的函数,谢谢 求助...MFC中文档视图与框架内的成员访问问题 treectrl使用的小问题!解决马上结贴 怎样在VC的对话框程序中实现动态改变 CStatic 、CEdit控件的显示文本? 请教各位高手如何防止非法拷贝? 熟悉dx的同志一定要帮帮忙,感激不尽 盗版的WINDOWS XP出来了吗? 给大家送分的问题!! 问个对话框的问题 很急,关于指针问题。
并且,InvalidateRect()你是在什么地方调用的?
是不是在别的地方写的字比如调用GetDC什么的,
然后自已在程序中InvalidateRect()的?
你试试改变一下窗口的大小,看看字还在不在,如果不在,
我想你一定不是在WM_PAINT的消息响应函数中调用TextOut的
是不是? 如果是你可以在WM_PAINT的消息响应函数中写同样的代码就成了.
于是对整个窗口的内容更新。
CString s;(它必须是类的成员变量,不能是函数内部定义的变量!)
////
s.Format("%d",100);
pDC->TextOut(0,0,s);
/////
如果是View的话,在OnDraw()里写显示的内容。