找了一些关于防治画面闪烁的双缓冲方法,但是都是在单文档中的使用,我在对话框里试了一下,没有成功。
想问一下双缓冲绘图能不能在对话框中使用,怎么使用? (我是在对话框的Picture控件上绘图)。
多谢!
想问一下双缓冲绘图能不能在对话框中使用,怎么使用? (我是在对话框的Picture控件上绘图)。
多谢!
解决方案 »
- 如何制作VC++6.0的安装程序向导?
- 一个简单郁闷的坐标问题?
- 在当前对话框中编辑代码时为什么获取当前对话框的指针会出错
- 多文挡程序我又加了一个摸板,怎样得到其指针?
- 求助!!!!COM问题,请大家帮忙!
- PDF文档的全文搜索
- Linux高手们,我现在在我的机器上装了三个操作系统:XP、2000 Professional、Linux,我使用软件System commander进行操作系统选择,我在装
- VC传递url中文参数到ASP页面的编码问题,纠结!
- 哪里有msdn中文版下载?
- 怎么样才能检验自己的水平?
- syntax error : missing ';' before '.'
- 自绘CComboBox的问题~~
知道问题所在了
明天上班试试。在对话框下,最主要的是找不到ON_WM_ERASEBKGND()消息的映射。所以这个需要手动加入。
在.h文件中加入:afx_msg BOOL OnEraseBkgnd(CDC* pDC);
在.cpp文件消息映射中加入: ON_WM_ERASEBKGND()
再添上函数:
BOOL CPaintPicture::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
我添加OnEraseBkgnd重载函数后,整个对话框全部变成透明(或是白色的)的了,这是怎么回事〉
OnEraseBkgnd函数的作用是什么?
我只需要对对话框上的Pictur区域绘图,并防止闪烁。
你应该处理Picture控件的WM_PAINT消息,或者将其设置为OwnerDraw然后响应对话框的WM_DRAWITEM消息。