各位大侠,我最近在开发一个ActiveX控件,其作用主要是绘图,绘制相应的图形,然后在单文档里面自动生成,然后组合起来形成一个完成的大图形。现在开发的时候遇到这样一个问题。我控件做好后,生成都没问题,然后控件在窗口内拖动也对。但是我的滚动条一拉动,我的控件就会跟随滚动条走。
比如我在CRect(0,0,10,10)创建了控件,然后我向右拉动滚动条,这样我的控件就应该看不见了,但是我的控件还是在窗口的左上角位置。
PS:我在我的控件里面调用了OnSetExtent和OnSetObjectRects两个虚函数。代码如下:
BOOL CZCLINECtrl::OnSetExtent(LPSIZEL lpSizeL)
{
// TODO: Add your specialized code here and/or call the base class
CSize sz(right-left,bottom-top);
CWnd *pwnd=CWnd::FromHandle(m_hWnd);
CClientDC dc(pwnd);
dc.DPtoHIMETRIC(&sz);
lpSizeL->cx=sz.cx;
lpSizeL->cy=sz.cy;
return COleControl::OnSetExtent(lpSizeL);
}BOOL CZCLINECtrl::OnSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip)
{
// TODO: Add your specialized code here and/or call the base class
CRect xrect(left,top,left+right,top+bottom);
return COleControl::OnSetObjectRects(&xrect,&xrect);
// return COleControl::OnSetObjectRects(lpRectPos, lpRectClip);
}
出现这种情况后,我查看top,left,bottom,right的值,结果一看还是0,0,10,10。问题:如何才能在窗口滚动条拖动后,本应在左上角(0,0,10,10)的控件“消失”,滚动条拉回来的时候又出现,就和在窗口内新建一个Button一样的效果。
小弟再次感谢各位大侠了。
比如我在CRect(0,0,10,10)创建了控件,然后我向右拉动滚动条,这样我的控件就应该看不见了,但是我的控件还是在窗口的左上角位置。
PS:我在我的控件里面调用了OnSetExtent和OnSetObjectRects两个虚函数。代码如下:
BOOL CZCLINECtrl::OnSetExtent(LPSIZEL lpSizeL)
{
// TODO: Add your specialized code here and/or call the base class
CSize sz(right-left,bottom-top);
CWnd *pwnd=CWnd::FromHandle(m_hWnd);
CClientDC dc(pwnd);
dc.DPtoHIMETRIC(&sz);
lpSizeL->cx=sz.cx;
lpSizeL->cy=sz.cy;
return COleControl::OnSetExtent(lpSizeL);
}BOOL CZCLINECtrl::OnSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip)
{
// TODO: Add your specialized code here and/or call the base class
CRect xrect(left,top,left+right,top+bottom);
return COleControl::OnSetObjectRects(&xrect,&xrect);
// return COleControl::OnSetObjectRects(lpRectPos, lpRectClip);
}
出现这种情况后,我查看top,left,bottom,right的值,结果一看还是0,0,10,10。问题:如何才能在窗口滚动条拖动后,本应在左上角(0,0,10,10)的控件“消失”,滚动条拉回来的时候又出现,就和在窗口内新建一个Button一样的效果。
小弟再次感谢各位大侠了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货