请教大家一个关于对话框分栏用CSplitterWnd的问题

ysysbaobei 2011-03-21 07:18:23
我看了
http://blog.csdn.net/woshidaniu/archive/2010/11/29/6043915.aspx
的内容,照做,程序运行出错,请大家帮忙看看什么地方出问题了。

在对话框头文件定义了:
public:
CFrameWnd* m_pMyFrame;
CSplitterWnd m_cSplitter;

编译环境vc6, vc2005都会一运行程序就提示:终止、重试、忽略 警告对话框。
...全文
379 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysysbaobei 2011-03-31
  • 打赏
  • 举报
回复
结贴了,谢谢大家
xundeng 2011-03-24
  • 打赏
  • 举报
回复
按http://blog.csdn.net/woshidaniu/archive/2010/11/29/6043915.aspx上做是没有错的,
不知道报的是什么错?

很可能是你的
CMyFormView1和CMyFormView2生成的时候有问题
黑泡泡选手 2011-03-23
  • 打赏
  • 举报
回复
包含文档类试试看!#include "XXXDoc.h"
ysysbaobei 2011-03-22
  • 打赏
  • 举报
回复
我的做法:
是仿照帖子http://blog.csdn.net/woshidaniu/archive/2010/11/29/6043915.aspx做的

具体做法:
1. vc2005对话框MFC程序里,建立一个对话框,添加类:CMyFormView1,基类为CFormView;
2. 建立第二个对话框,添加类:CMyFormView2,基类为CFormView;
3. 在主对话框.h头文件里声明:
public:
CFrameWnd* m_pMyFrame;
CSplitterWnd m_cSplitter;
4. 在主对话框.cpp实现文件OnCreate函数里添加:
// Because the CFRameWnd needs a window class, we will create a new one. I just copied the sample from MSDN Help.
// When using it in your project, you may keep CS_VREDRAW and CS_HREDRAW and then throw the other three parameters.
//需要注册窗口类
CString strMyClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW,
::LoadCursor(NULL, IDC_ARROW), (HBRUSH) ::GetStockObject(WHITE_BRUSH),
::LoadIcon(NULL, IDI_APPLICATION));

// Create the frame window with "this" as the parent
m_pMyFrame = new CFrameWnd;
m_pMyFrame->Create(strMyClass,L"", WS_CHILD, CRect(0,0,300,300), this);
m_pMyFrame->ShowWindow(SW_SHOW);

// and finally, create the splitter with the frame as the parent
m_cSplitter.CreateStatic(m_pMyFrame,1, 2); //在Frame里切分视图窗口为1×2,就是一行两列
m_cSplitter.CreateView(0,0, RUNTIME_CLASS(CMyFormView1), CSize(100,100), NULL);//第一行一列
m_cSplitter.CreateView(0,1, RUNTIME_CLASS(CMyFormView2), CSize(100,100), NULL);//第一行二列

5. 在主对话框.cpp实现文件OnInitDialog函数里添加:
CRect cRect;
GetWindowRect(&cRect);
ScreenToClient(&cRect);
m_pMyFrame->MoveWindow(&cRect);
m_pMyFrame->ShowWindow(SW_SHOW);



程序断点单步执行到到4步的:
m_cSplitter.CreateView(0,0, RUNTIME_CLASS(CMyFormView1), CSize(100,100), NULL);//第一行一列
处出错,请大家帮忙看看!!!
黑泡泡选手 2011-03-21
  • 打赏
  • 举报
回复
跟踪调试一下,看看哪里发生错误?先注释掉CFrameWnd* m_pMyFrame;
你还增加了什么代码?
ysysbaobei 2011-03-21
  • 打赏
  • 举报
回复
定下,知道的朋友帮帮忙
ysysbaobei 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heksn 的回复:]
http://www.cctry.com/thread-12641-1-1.html
[/Quote]

你能帮我看看我的做法里,那里出了问题吗?
  • 打赏
  • 举报
回复
http://www.cctry.com/thread-12641-1-1.html

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧