关于动态移动OCX的有关问题
关于动态移动OCX的问题
各位朋友,我初弄VC不久,刚搞了一个OCX,功能可以正常使用;
但有一个问题未解决,先看下面的代码:
BOOL CDemoOcxCtrl::SetSize(long nTop,long nBottom,long nWidth, long nHeight)
{
// TODO: Add your dispatch handler code here
//通过句柄获得类指针:
CRect rect;
GetClientRect(&rect);
rect.top =nTop;
rect.bottom=nBottom;
rect.right=nWidth;
rect.Height=nHeight;
CDC *pDC=GetDC();
OnDraw(pDC,&rect,&rect);
return true;
}
上面的SetSize()是输出函数.
void CDemoOcxCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.
//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);
m_ocxface.MoveWindow(rcBounds);
}
其中m_ocxface为面板类的实例;
问题:
类似在开发界面,可以拉伸缩小OCX界面,不过,是用代码控制OCX的界面变大或变小及位置,
即在SetSize()函数中实现;我写的无任何效果,请问该怎么实现?
请知道的朋友指点一下,谢谢.
------解决方案--------------------
在OnSetExtent里面做,在开发模式下,OnSize不会触发。
注意其参数不是像素,需要转换,因为在ide中,单位也不是像素。
------解决方案--------------------
看没明白你什么意思
什么叫可以拉伸缩小OCX界面,我写的无任何效果
------解决方案--------------------
你的代码在我看来非常有问题,居然在OnDraw里面MoveWindow,要知道,OnDraw的时候,不一定窗口有变化,需要刷新的时候,都会调用OnDraw
各位朋友,我初弄VC不久,刚搞了一个OCX,功能可以正常使用;
但有一个问题未解决,先看下面的代码:
BOOL CDemoOcxCtrl::SetSize(long nTop,long nBottom,long nWidth, long nHeight)
{
// TODO: Add your dispatch handler code here
//通过句柄获得类指针:
CRect rect;
GetClientRect(&rect);
rect.top =nTop;
rect.bottom=nBottom;
rect.right=nWidth;
rect.Height=nHeight;
CDC *pDC=GetDC();
OnDraw(pDC,&rect,&rect);
return true;
}
上面的SetSize()是输出函数.
void CDemoOcxCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.
//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);
m_ocxface.MoveWindow(rcBounds);
}
其中m_ocxface为面板类的实例;
问题:
类似在开发界面,可以拉伸缩小OCX界面,不过,是用代码控制OCX的界面变大或变小及位置,
即在SetSize()函数中实现;我写的无任何效果,请问该怎么实现?
请知道的朋友指点一下,谢谢.
------解决方案--------------------
在OnSetExtent里面做,在开发模式下,OnSize不会触发。
注意其参数不是像素,需要转换,因为在ide中,单位也不是像素。
------解决方案--------------------
看没明白你什么意思
什么叫可以拉伸缩小OCX界面,我写的无任何效果
------解决方案--------------------
你的代码在我看来非常有问题,居然在OnDraw里面MoveWindow,要知道,OnDraw的时候,不一定窗口有变化,需要刷新的时候,都会调用OnDraw