怎样控制ActiveX控件在容器中的大小?在线等待!

lu_zi 2002-10-26 12:14:25
如题,我重载了SetObjectRect函数,然后通过m_spInPlaceSite->OnPosRectChange(CRect(prcPos->left,prcPos->top,prcPos->left+32,prcPos->top+32))来向控制窗口发送请求,但是只在ActiveX测试程序中有用,在vc,vb下都无效,有什么办法可以解决这个问题吗,多谢
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
spoonyboy 2002-10-28
  • 打赏
  • 举报
回复
to lu_zi(lu_zi):

能将这一块做个简单的demo吗?
lu_zi 2002-10-28
  • 打赏
  • 举报
回复
唉,这个问题我自己解决了,多谢,给分!
lu_zi 2002-10-27
  • 打赏
  • 举报
回复
这样作确实可以达到这个目的,但是我怎么得到容器的映射模式呢,还望指教!
STDMETHOD(GetExtent)(DWORD dwDrawAspect, LONG lindex,DVTARGETDEVICE* ptd, LPSIZEL lpsizel)
{
HRESULT hr=IViewObjectExImpl<CAutoGlideDialog>::GetExtent(dwDrawAspect,lindex,ptd,lpsizel);
CComQIPtr<IOleInPlaceSiteWindowless> spContainer=m_spClientSite;
if(spContainer==NULL)
return S_OK;

HDC dc;
spContainer->GetDC(NULL,OLEDC_PAINTBKGND,&dc);
CDC wdc;
wdc.Attach(dc);
CSize size;
size.cx=64;
size.cy=64;
wdc.LPtoDP(&size);
wdc.Detach();
spContainer->ReleaseDC(dc);

if(hr==S_OK)
{
lpsizel->cx=size.cx;
lpsizel->cy=size.cy;
}
return hr;
}
lu_zi 2002-10-27
  • 打赏
  • 举报
回复
大虾们,有没有人回答我这个问题啊?
masterz 2002-10-26
  • 打赏
  • 举报
回复
implement IViewObject2::GetExtent ,IOleObject::GetExtent ,see MSDN

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧