界面 刷新问题 百思不得其解 在其他窗口拖过程序控件时,控件不立即刷新,等停止拖动其他窗口时,控件才开始刷新我的猜想:主窗口在重绘时,控件等不到重绘的消息。。但该如何解决该现象?还请有过类似经验的大虾指导。先谢过。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OnErasbkgroud 中返回 TRUE调用UpdateWindow()函数 请教在哪调用? 控件都是自绘 继承于CWnd 请问如何定义当其它窗口经过时重绘。。 控件创建的样式WS_VISIBLE|WS_CHILD WM_PAINT属于优先级比较低的消息,系统只会在消息队列里没有其他比他优先等级高的消息时才会处理,你的WM_MOUSEMOVE比WM_PAINT优先级高。 不会的,计算机的处理速度很快,在一个WM_MOUSEMOVE触发时,WM_PAINT还是会被处理 我也有类似的问题,就是在这个视图上的变化 发消息给其他视图更新 消息是发到了 然后invalidate了,但是只要鼠标不移动接收消息的视图 他就是不更新。只要鼠标移到了(WM_MOUSEMOVE)时才刷新,我也不知道为什么 每个视图我都invalidate了啊 为什么不更新呢?要等到鼠标已过去才 显示变化 真是令人费解的问题 应该不是不刷新,而是你移动的速度过快,而界面的控件又很多,导致刷新不过来可以做下试验:你用一个控件,用程序控制他不停的movewindow,就会刷新不过来 已经试验过 不是控件多的问题,应该是逻辑问题或者是样式的问题吧,,主窗口样式我用的是WS_OVERLAPPEDWINDOW,控件是继承CWnd的自绘控件,样式是WS_VISIBLE|WS_CHILD。 设置控件的父窗体风格带有:WS_CLIPCHILDREN | WS_CLIPSIBLINGS 简单的测试了一下,标准控件也会这样。还是上代码BOOL CSkinTestDlg::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CRect rcClient; GetClientRect(&rcClient); Graphics graphic(pDC->GetSafeHdc()); Rect rc; rc.X = 0; rc.Y = 0; rc.Width = rcClient.Width(); rc.Height = rcClient.Height(); Bitmap bmp(_T("a.bmp")); graphic.DrawImage(&bmp,rc,0,0,rc.Width,rc.Height,UnitPixel); return TRUE;} 尽量别在WM_ERASEBKGND里面做吧,效率不怎么样,这样消息太频繁了。 确实 可以在OnPaint里。另外:问题解决了。问题出在,graphic.DrawImage(&bmp,rc,0,0,rc.Width,rc.Height,UnitPixel);GDI+的效率问题,导致控件不能及时重绘。 请问自绘控件 怎么加入滚动条 谢谢 有关网络编程connect函数的问题,很急 VC6编译的对话框,在vista下对话框字显示不出来? 我替换文件中的内容,如果写入长度和原有不一样,是否就必须全部重写? 音乐播放help! 如何在VC6.0中顺利使用VC.net下封装的Dll? 为什么CSliderCtrl的刻度会消失? 为什么使用GetKeyboardLayoutName无法得到“微软拼音3.0”输入法的正确名字 怎样才能不让窗体移动! C++操作word,怎么取单个字符,改变大小,然后保存? 网络爬虫 求解VS2010 建立MFC工程不做任何修改编译不过
OnErasbkgroud 中返回 TRUE
调用UpdateWindow()函数 请教在哪调用?
可以做下试验:你用一个控件,用程序控制他不停的movewindow,就会刷新不过来
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rcClient;
GetClientRect(&rcClient);
Graphics graphic(pDC->GetSafeHdc());
Rect rc;
rc.X = 0;
rc.Y = 0;
rc.Width = rcClient.Width();
rc.Height = rcClient.Height();
Bitmap bmp(_T("a.bmp")); graphic.DrawImage(&bmp,rc,0,0,rc.Width,rc.Height,UnitPixel);
return TRUE;
}
问题解决了。
问题出在,graphic.DrawImage(&bmp,rc,0,0,rc.Width,rc.Height,UnitPixel);
GDI+的效率问题,导致控件不能及时重绘。