线程绘图刷新是不是比Onpaint绘图刷新快

xiaojin093 2011-05-23 09:59:58
一个模态对话框CTestDlg,在上面有个静态控件IDC_STATIC_DRAW(CStatic m_static),并且在上面创建一个子对话框(CChildDlg *m_pDlg;)代码如下

void::CTestDlg::OnInitDialog()
{
CRect rect;
m_static.GetClientRect(&rect);
if (m_pDlg == NULL)
{
m_pDlg = new CChildDlg;
m_pDlg->Create(CChildDlg::IDD, this);
m_pDlg->MoveWindow(rect);
m_pDlg->ShowWindow(SW_SHOW);
}
}
现在在一个线程里传进static控件的dc在rect区域上画图,CChildDlg 子对话框上我要实现用鼠标画图(重载onLbuttondown/onlbuttonup/onmousemove/onpaint函数),我想要实现的是static上的画图作为背景,不断在刷新,而子对话框上的画图叠加在static控件的背景图上,但是运行出来的效果是显示的一直是static控件上的内容,子对话框上的画图只在我鼠标操作时一闪而过,又恢复成static控件的画面,这是什么原因,是跟static控件的绘图不是在Onpaint里进行的有关系吗?线程的刷新速度是会比子窗口Onpaint的刷新快吗?
...全文
174 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-06-13
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
xiaojin093 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 likang0712 的回复:]

2.看你代码 是要把非模态对话框覆盖到静态控件上?
重载了OnSize()没?
但是你移动上去了 这个对话框不就是把静态控件覆盖上了吗?
那怎么还看的到静态控件上的图呢?
[/Quote]

为什么要重载Onsize,onsize不是窗口改变大小时用的吗?就算重载了Onsize,那也只是在开始的时候调用了下,后面还是会被static的刷新给覆盖的。
「已注销」 2011-05-24
  • 打赏
  • 举报
回复

1."是跟static控件的绘图不是在Onpaint里进行的有关系吗?"
鄙人嚼着有关

2.看你代码 是要把非模态对话框覆盖到静态控件上?
重载了OnSize()没?
但是你移动上去了 这个对话框不就是把静态控件覆盖上了吗?
那怎么还看的到静态控件上的图呢?

lyyscf 2011-05-24
  • 打赏
  • 举报
回复
嗯,线程中最好不要对控件的DC进行操作
不过可以传它的兼容DC,操作完成,能过发消息的形式来重绘

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧