首先控件宿主应该先要重写一个虚函数
The framework calls this member function to obtain ambient property values from a window that contains OLE controls.
virtual BOOL OnAmbientProperty( COleControlSite* pSite, DISPID dispid, VARIANT* pvar );
Parameters
-
pSite
-
Pointer to the site of the control that requested the ambient property.
-
dispid
-
The dispatch ID of the requested ambient property.
-
pvar
-
Pointer to a caller-allocated VARIANT structure, through which the ambient property's value will be returned.
Remarks
Override this function to alter the default ambient property values returned by an OLE control container to its controls.
Any
ambient property requests not handled by an overriding function should be forwarded to the base class implementation.
然后在函数中添加
if (dispid == DISPID_AMBIENT_DLCONTROL) { pvar-> vt = VT_I4; pvar-> lVal = DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA | DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_DLACTIVEXCTLS; return TRUE; }
重写OnAmbientProperty函数
本文介绍如何在控件宿主中重写CWnd::OnAmbientProperty虚函数,以自定义返回给OLE控件的环境属性值。通过设置DLCTL_NO_SCRIPTS等标志,可以控制控件的行为。
1858

被折叠的 条评论
为什么被折叠?



