一个可以滚动的CListCtrl,单元格里都放一个CEdit或CButton。当滚动的时候,这些控件MoveWindow,导致屏幕闪烁,很晃眼。怎么解决比较好?现在OnEraseBkgnd已经直接返回TRUE,OnMouseWheel里面做的MoveWindow(FALSE)后都调用InvalidateRect了的。
在滚动时,不要调用多余的窗口更新函数,如RedrawWindow和Invalidate
采用双缓冲绘制控件,以此减少闪烁。
我有写博客,里面介绍了双缓冲绘制的方法,不过采用的是GDI+绘图,可以给你参考下:
http://blog.csdn.net/renstarone/article/details/9089835追问Hi Ming:
双缓冲的大致原理从网上了解了,不过如何使用HDC/CDC来绘制控件比如CButton或者CEdit我就不了解了。不知您有什么建议吗?
我给你的博客里有CButton的例子,CEdit的我还没有写,你可以先看看CButton自定义皮肤的例子。
http://blog.csdn.net/renstarone/article/details/11177051MFC控件比较多的时候MoveWindow导致闪烁
在滚动时,不要调用多余的窗口更新函数,如RedrawWindow和Invalidate 采用双缓冲绘制控件,以此减少闪烁。我有写博客,里面介绍了双缓冲绘制的方法,不过采用的是GDI+绘图,可以给你参考下:http:\/\/blog.csdn.net\/renstarone\/article\/details\/9089835 ...
...>MoveWindow(0,0,400,300)为什么不能的移动到屏幕左上角?
MoveWindow(0,1,400,300);0,0点的问题,在正常情况下都不会发生,除非你有多屏设置或者其它影响屏幕坐标的特殊设置,这个应该不是程序问题。加作用于::符号,本身就是有问题的,系统会容错纠正为上述语句使用。调用 ::MoveWindow 是表明要使用API函数,api函数一共6个参数,第一个,是要移动的窗口句...
MFC对话框中,向对话框中添加水平和垂直的滚动条,拉动滚动条的浮标使得里...
记得你问过我问题,建议你在OnInitDialog里面判断屏幕分辨率,如果分辨率小于要求,再通过SetWindowStyle、MoveWindow之类的函数代码增加滚动条。对话框的滚动是要求自己控制的,文库例子中只是一半,另一半横向滚动意思相同。如果你这个是一个项目,给你建议:一个界面中不适合做太多控制,你可以将同类控制放在...
MFC中TabCtrl控件怎么随着窗体的大小变化而变化?
这有个MFC tabctrl的例子,当窗口执行WM_SIZE时,改变tabctrl的大小即可,用MoveWindow.http:\/\/www.codeproject.com\/Articles\/93521\/MultiPaneCtrl
MFC动态创建CButton控件显示不正常
在后面加一句 btn->MoveWindow(50,50,100,100);就行了。新建立的控件位置都还是默认的.
用VC中的MFC开发系统怎么使窗体的标题左靠齐
回答:窗口每OnSize一次,获取一次它的大小,与程序启动时的大小做比较,算出其比例,调用自定义函数,在自定义函数中获取每个控件的大小GetDlgItem(IDC_XXX)->GetWindowRect(&rc);然后把每个控件进行按比例缩放,使用MoveWindow函数各函数具体用法请查msdn
MFC的控件用什么方式布局?我知道Qt可以 layout布局管理器,MFC呢?只有...
没有自适应布局。只能自己调整。MoveWindow函数
MFC如何将窗口中所有控件大小随父窗口大小改变
对话框属性->样式,勾上最大化框。再在类向导里,选择WM_SIZE,然后Edit Code.VC++全屏时,根据对话框大小调整控件大小 1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect);3、在WM_...
MFC怎么让主窗口随View类改变大小
刚接触MFC不久,对MFC的许多函数和功能还不是很了解。所以,在仿照书本开发一个仿QQ的通讯程序的时候,就碰到了一个怎么样使控件随着窗体变化的问题。好了,废话不多说,直接上主窗体图:现在,要实现的功能如下:使控件CLISTBOX类对象窗口(IDC_QQLISTBOX)以及两个CBUTTON类对象(IDC_MAIL)、(IDC_...
MFC基本对话框中下拉列表显示不出下拉的选项
"不是拉的长度不够的原因",这里你确定么?一般都是在资源编辑器里面,没有给组合框足够的“高度”,也就是下拉长度;另外的可能是对该控件进行了MoveWindow等代码操作,破坏了原有的设置。