关于界面刷新的问题,请大家来帮我看看 主窗体画一些图或字,但是如果主窗体上有其它窗体拖动,就会把下面画的东西给刷掉,即拖过的地方就变成窗体原来的灰白色,可是我是在主窗体OnPaint中画的,应该会及时刷新才对。有什么方法可以解决呢,请大家帮忙想想,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计是主窗口没有收到WM_PAINT消息,仔细查一下消息循环 问题是我在拖动上面窗体时,比如AfxMessageBox,怎么给主窗体发刷新消息 你的主窗体是对话框么?能不能将你OnPaint中的内容贴出来看看那 CRect r;CBrush brush, brush1;brush1.CreateSolidBrush(COLORREF(0x0000ff));brush.CreateSolidBrush(COLOR_OVERYLAY);tFace.GetClientRect(&r); //tFace是用来画东西的区域CPaintDC dc(CWnd::FromHandle(tFace.m_hWnd));dc.SelectObject(brush);dc.FillRect(&r, &brush);DrawTitle(&r, nCamera, &dc); //画汉字 dc.SelectObject(&brush1);ReflashArea(&dc, &r); //画一些图(主要是线moveto lineto什么的) brush.DeleteObject();brush1.DeleteObject();::ReleaseDC(tFace.m_hWnd, dc.m_hDC); 实际上我是在主窗体中用一个Static来画,刷新也是刷Static 建议你字写一个继承CStatic的类,如CNewStatic,在CNewStatic中的OnPaint中做你要做的事,这样就不会出现你所说的现象了。 大概你的OnPaint中有存在刷新的条件判断。 这个应该是放在WM_PAINT里面的。当窗体被覆盖主的时候,要发WM_PAINT消息的。 ronmal(新奇天空)你说的这个方法我也想过,不过并不能确定具体什么时候需要刷新,如果开个线程刷的话,可能会造成屏幕会一直在闪 你可千万不能在另一个线程里操作GDI,很容易死的(比如一旦出现争用同一个DC时就会发生)。 我现在不是用一个线程,而是通过捕捉上层窗体(如MessageBox)的WM_MOVE消息来刷新主窗体,但这样做有一个问题是,MessageBox每次移动后上一次停留的地方都刷新不了,这是什么问题,我一直找不出,谁能帮下忙呢? 建议你字写一个继承CStatic的类,如CNewStatic,在CNewStatic中的OnPaint中做你要做的事,这样就不会出现你所说的现象了。------------------------我还是建议你用这种方法试试!其实你自己捕捉看要不要刷新新窗口,倒不如让系统给你捕捉的好! 好运! 批准同意dirdirdir3(风)在WM_ERASEBKGND消息下画图 pvoid 的问题 CFileDialog的问题(做vc开发已经几年了,今天才遇到这种情况,郁闷) Unicode udp广播问题. 在一个view里,显示两幅图片可以调节一幅显示的大小,即另一幅被挡住的大小,解决再给100分,up有分 请教:MFC SOCKET和WINSOCK2混用的问题? 内存泄漏的疑惑 想系统的学习编程,希望有经验的给我介绍个学校。3-6月的! 新手求教:OpenCV程序如何在命令行运行 无盘站能做WIN2000SERVER的终端吗? 在WinMain中怎么获取CreateProcess传入的参数? 寻找一个代理服务器 能够代理ftp的源代码,目前只有10分,天天加。
CBrush brush, brush1;
brush1.CreateSolidBrush(COLORREF(0x0000ff));
brush.CreateSolidBrush(COLOR_OVERYLAY);
tFace.GetClientRect(&r); //tFace是用来画东西的区域
CPaintDC dc(CWnd::FromHandle(tFace.m_hWnd));
dc.SelectObject(brush);
dc.FillRect(&r, &brush);
DrawTitle(&r, nCamera, &dc); //画汉字 dc.SelectObject(&brush1);
ReflashArea(&dc, &r); //画一些图(主要是线moveto lineto什么的)
brush.DeleteObject();
brush1.DeleteObject();
::ReleaseDC(tFace.m_hWnd, dc.m_hDC);
你说的这个方法我也想过,不过并不能确定具体什么时候需要刷新,如果开个线程刷的话,可能会造成屏幕会一直在闪
我还是建议你用这种方法试试!其实你自己捕捉看要不要刷新新窗口,倒不如让系统给你捕捉的好! 好运!
同意dirdirdir3(风)
在WM_ERASEBKGND消息下画图