Events MFC ActiveX不会自动刷新/重新绘制
我有一个基于MFC的ActiveX控件,其中一些重要的东西不起作用。永远不会调用size事件,只有在单击控件的边框时(在ActiveX测试容器中),才会重新绘制控件内容 这是头文件中大小事件的代码:Events MFC ActiveX不会自动刷新/重新绘制,events,mfc,activex,ocx,Events,Mfc,Activex,Ocx,我有一个基于MFC的ActiveX控件,其中一些重要的东西不起作用。永远不会调用size事件,只有在单击控件的边框时(在ActiveX测试容器中),才会重新绘制控件内容 这是头文件中大小事件的代码: public: afx_msg void OnPaint(); …并在源文件中: BEGIN_MESSAGE_MAP(CBeamConstruXCtrl, COleControl) ON_WM_SIZE() ON_WM_PAINT() ON_OLEVERB(AFX_
public:
afx_msg void OnPaint();
…并在源文件中:
BEGIN_MESSAGE_MAP(CBeamConstruXCtrl, COleControl)
ON_WM_SIZE()
ON_WM_PAINT()
ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP()
void MyCtrl::OnPaint()
{
//this is never called also when I change the size of the control in test container
}
你知道这里缺少什么吗
编辑:只是澄清一下:OnSize()在OCX的初始化阶段调用一次,但在我更改控件大小时从未调用过。正如Roger Rowland提到的:OnDraw()起作用。您需要覆盖
虚拟void OnDraw(CDC*pdc、const-CRect&rcBounds、const-CRect&rcInvalid)代码>而不是处理WM_油漆。没有更多信息无法解释WM_大小-它是一个无窗口控件吗?好的,它是OnDraw(),它解决了两个问题:-)谢谢!