佚名通过本文主要向大家介绍了控件打开pdf出现问题,控件打开word出现问题,office控件出了点问题,mscomm控件的问题,office控件出了问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 控件重画的问题,该在那重画呢?
描述:
解决方案1:
描述:
我写了一个ActiveX控件,用在web页面中,其中包含了几个ListCtrl控件,结果我发现如果浏览器中的我的控件中的ListCtrl控件部分如果不被别的窗口完全遮盖就不会重画,最明显的情况就是如果ListCtrl控件中出现了滚动条则必须把IE最大或最小化一次,否则就不能正确显示滚动条。请问我应该怎样重画控件呢?
解决方案1:
MFC和ActiveX不是光看文档就行的,对于WM_PAINT消息来说,缺省的操作就是对窗口中标明无效矩形的
区域进行重绘,BeginPaint函数就是无效区域进行重绘你说的情况就是说明你想要绘图的地方只有部分被
设置成了无效区域,还有部分没有,这可以2种方法解决,一种是使用::GetDC或者::GetWindowDC
还有一种就是通过设置Invalidate函数,将Windows保存的无效区域扩大成你想要的大小
这样在执行时,Windows就绘给你的消息队列里面投递一个WM_PAINT消息,对无效区域进行重绘
打字累,更详细的可以看Win32程序设计和MFC原码
Invalidate()
解决方案3:onpaint ondraw
解决方案4:Invalidate/InvalidateRect.