MoveWindow()运行出错!!

wjwlzl wjwlzl 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,我想使单文档CFromview中 的控件随窗口变化,我新编了一个CSynname类,保存了CFromview中控件的地址,在onsize中调控件大小

OnSize(UINT nType, int cx, int cy)
{
// CFormView::OnSize(nType, cx, cy);
//m_m_pControlArray是CPtrArray存放控件的信息
// TODO: Add your message handler code here
if (kong==TRUE)
{

int nIncrementX = cx - m_nWinWidth;
int nIncrementY = cy - m_nWinHeight;
int i=0;
int nMoveXPercent = ((CSynname*)m_pControlArray.GetAt(i))->m_nMoveXPercent;
int nMoveYPercent = ((CSynname*)m_pControlArray.GetAt(i))->m_nMoveYPercent;
int nZoomXPercent = ((CSynname*)m_pControlArray.GetAt(i))->m_nZoomXPercent;
int nZoomYPercent = ((CSynname*)m_pControlArray.GetAt(i))->m_nZoomYPercent;

CWnd*pWndCtrl=((CSynname*)m_pControlArray.GetAt(0))->m_pWnd;
HWND hWnd = pWndCtrl->GetSafeHwnd();
//if((NULL!=pWndCtrl)&&IsWindow(hWnd))
// {
int nLeft = ((CSynname*)m_pControlArray.GetAt(0))->m_rectWnd.left;
int nTop = ((CSynname*)m_pControlArray.GetAt(0))->m_rectWnd.top;
int nWidth = ((CSynname*)m_pControlArray.GetAt(0))->m_rectWnd.Width();
int nHeight = ((CSynname*)m_pControlArray.GetAt(0))->m_rectWnd.Height();

//设置新的位置参数
nLeft += (nIncrementX*nMoveXPercent/100);
nTop += (nIncrementY*nMoveYPercent/100);
nWidth += (nIncrementX*nZoomXPercent/100);
nHeight += (nIncrementY*nZoomYPercent/100);

// 把控件移动到新位置
pWndCtrl->MoveWindow(nLeft, nTop, nWidth, nHeight);
// }
//}*/
}
}单步运行到pWndCtrl->MoveWindow(nLeft, nTop, nWidth, nHeight);程序就崩溃,大家看看什么原因,谢谢!!
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
wjwlzl
界面 15,976 成员 115,866 内容