在进行MFC ActiveX开发时,在控件里放一个Dialog,如何根据控件的大小自动调整Dialog的大小?
我的方法是:
void CMyActiveXCtrl::OnSize(UINT nType, int cx, int cy)
{
COleControl::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
if (cx > 0 && cy > 0)
{
m_dlgBody.SetDlgSize();
}
}void CDlgBody::SetDlgSize()
{
CRect rect;
GetParent()->GetClientRect(&rect);
this->MoveWindow(rect);
}但是没效果
网上查了蛮多资料都说MoveWindow可以动态改变对话框的大小。
请各位大虾帮帮忙啊!!!mfcActiveX
我的方法是:
void CMyActiveXCtrl::OnSize(UINT nType, int cx, int cy)
{
COleControl::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
if (cx > 0 && cy > 0)
{
m_dlgBody.SetDlgSize();
}
}void CDlgBody::SetDlgSize()
{
CRect rect;
GetParent()->GetClientRect(&rect);
this->MoveWindow(rect);
}但是没效果
网上查了蛮多资料都说MoveWindow可以动态改变对话框的大小。
请各位大虾帮帮忙啊!!!mfcActiveX
WM_SIZE消息映射
另外MoveWindow是没问题的,你可以设置断点看看
去掉这句,不要执行默认的基类函数,另外,还有一个坐标系和客户区和屏幕区的问题,你单步执行看看SIZE里的数据是多少,是不是需要进行ClientToScreen和ScreenToClient这两个函数转换