最近在工作中 需要在单文档应用程序中嵌入 formview
在frame构造函数中加入 m_infoDlg = (CTradeInfoDialog *)RUNTIME_CLASS(CTradeInfoDialog)->CreateObject();
齐总 m_infoDlg为formview的对象,然后在oncreate函数中
m_infoDlg->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0, menurct.Height(), rct.Width(), rct.Height() / 2), this, IDD_TRADE_INFO, NULL);
运行后总报 winocc.cpp line303错误 ,跟踪后发现 我在m_infoDlg类中重写了Onsize方法,OnSize方法内部 调用了 控件的MoveWindow方法,但m_infoDlg的create的时候,会调用Onsize 此时还没有调用OnInitialUpdate 也就是说里边控件的句柄都是空的 需要在OnSize里边加入判断
if (m_listinfo.GetSafeHwnd()!= NULL)
m_listinfo.MoveWindow(CRect(0,0,rct.right,rct.bottom-5),true);