我将listctrl放在ontimer地下,每次刷新都使显示的内容刷新,刚开始闪烁以为是list由于ontimer刷新频率的问题,但是后来改到有消息驱动list的刷新还是闪烁,查到可能是因为要用双缓冲,但是list空间的绘制是不是也要自己实现呢,是不是有其他的方法可以解决这个问题呢?? 谢谢大家了,刚学mfc对立面的一些具体的细节不是特别的明白谢谢大家赐教!
解决方案 »
- c++ volatile的问题
- 高手请进
- 怎么调用一种是可执行的DLL
- 谁有SKINMAGIC的源代码
- true dbgrid pro 7.0问题
- 帮帮小妹!如何将access数据表中的int型字段的记录读入一个CString变量中,用什么格式转换函数!!?
- 注册表操作:
- 请问大虾:如何将甲ListCtrl中的某一行拖到乙ListCtrl中?我已经问了三次了,没人回答我?????
- 请问 : ocx组件 放在服务器端并注册成功,网页调用ocx也成功(服务器端),把调用成功的网页发布,但是通过客户端网页调用服务器网页,提示无法识别ocx组件
- 如何模拟功能键的输入?
- 获得属性框控件和列表框问题
- 求教一本关于程序开发书
一般很少在OnTimer下处理绘制的方案。关联的有WM_PAINT,WM_NCPAINT,WM_ERASEBKGND....等消息的处理.如果项目紧,并且需求高,可以参考一下我们的产品。目前推广期,专业版也相当优惠,可以看看哦。www.afe-soft.com SkinBeauty
void CMonitorDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();//重绘
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}void CMonitorDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();//重绘
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}void CMonitorDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
Invalidate();//重绘
CDialog::OnLButtonDown(nFlags, point);
}void CMonitorDlg::OnSelchangeDisplay()
{
// TODO: Add your control notification handler code here
Invalidate();//重绘
}
m_list.SetRedraw(FALSE);
//更新内容
m_list.SetRedraw(TRUE);
m_list.Invalidate();
m_list.UpdateWindow();
或者参考
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp