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;
} 展开
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;
} 展开
1个回答
展开全部
编号错了, 你分了1行2列, 一共2个, 一个(0,0), 另一个就是(0,1)
你2个都写成(0,0)了
m_wndSplitter.CreateView(0, 1 //第二个改成1
你2个都写成(0,0)了
m_wndSplitter.CreateView(0, 1 //第二个改成1
更多追问追答
追问
但是我都注释掉了啊
追答
你光注释掉createview, createstatic还留着呢, 分割了框架确不给他视图肯定出错
要注释把2个都注释,
当然不光都注释掉,因为你重载了OnCreateClient为了分割, 也就是不调用基类的OnCreateClient了,而调用你重载的,这样是不执行默认代码直接添加视图而是执行你的OnCreateClient分割后加视图,但现在你注释掉了就什么都没做,又因为重载调用不到基类的,所以还应该调用回基类的OnCreateClient或者把重载的OnCreateClient的痕迹完全去掉,要不你的框架里没视图
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询