MFC静态切分窗口重载CMainFrame::OnCreateClient函数运行出错

代码是照网上方法写的BOOLCMainFrame::OnCreateClient(LPCREATESTRUCTlpcs,CCreateContext*pContext){... 代码是照网上方法写的

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
CRect cr;
GetWindowRect(&cr);

//创建一个静态分栏窗口,分为一行二列
if (m_wndSplitter.CreateStatic(this, 1, 2) == NULL)
return FALSE;
//将TreeView1连接到0行0列窗格上
//m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CTreeViewDlg), CSize(cr.Width() / 4, cr.Height()), pContext);
//将ListView1类连接到第二个分栏对象的0行0列
//m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CListViewDlg), CSize(3 * cr.Width() / 4, cr.Height() / 3), pContext);
//将TreeView2类连接到第二个分栏对象的1行0列
return TRUE;
}
展开
 我来答
ssilspro
2014-02-28 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1717万
展开全部
编号错了, 你分了1行2列, 一共2个, 一个(0,0), 另一个就是(0,1)
你2个都写成(0,0)了
m_wndSplitter.CreateView(0, 1 //第二个改成1
更多追问追答
追问
但是我都注释掉了啊
追答
你光注释掉createview, createstatic还留着呢,  分割了框架确不给他视图肯定出错
要注释把2个都注释,

当然不光都注释掉,因为你重载了OnCreateClient为了分割, 也就是不调用基类的OnCreateClient了,而调用你重载的,这样是不执行默认代码直接添加视图而是执行你的OnCreateClient分割后加视图,但现在你注释掉了就什么都没做,又因为重载调用不到基类的,所以还应该调用回基类的OnCreateClient或者把重载的OnCreateClient的痕迹完全去掉,要不你的框架里没视图
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式