如何迫使alt activex的ondraw被调用?

bsnry bsnry 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如何迫使alt activex的ondraw被调用?




需求:对某个成员变量设置值,比如为1的时候,textout “1”,

为2的时候,textout"2"



invalidate似乎不行,导致测试active x的容器崩溃.



做法:
用alt建立一个activex, 然后添加了一个事件"FILL Color". 添加这个属性后,书上似乎没有提到要对这个属性

的 get, put两个函数如何处理。

[propput, bindable, requestedit, id(DISPID_FILLCOLOR)]
HRESULT FillColor([in]OLE_COLOR clr);
[propget, bindable, requestedit, id(DISPID_FILLCOLOR)]
HRESULT FillColor([out, retval]OLE_COLOR* pclr);



于是我自己添加了一个属性

[propget, id(1), helpstring("属性 sides")] HRESULT sides([out, retval] short* pVal);
[propput, id(1), helpstring("属性 sides")] HRESULT sides([in] short newVal);

实现代码:
STDMETHODIMP CPolyCtrl::put_sides(short newVal)
{
// TODO: 在此添加实现代码
if(m_nsides<0)
{
//ERROR(_T("args are invalid!"));
return S_FALSE;
}
m_nsides=323;

//Invalidate(TRUE);




return S_OK;
}


会导致测试容器崩溃,原因是: Invalidate(TRUE);导致的


...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
bsnry
VC/MFC 16,550 成员 421,606 内容