关于拆分视图的问题

daniel_wang_1983 2008-05-20 01:51:22
我想把主视图拆分成两个框,左边一个是显示图像的,右边一个是显示处理的那个对话框的。
我在MainFrame里添加了一些函数,但是运行的时候总是编译错误。调试的时候是可以通过的
请大家帮我看看。


BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{

CRect rect;
GetClientRect(&rect);
m_wndSplitter.CreateStatic(this,1,2);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CDTSCANViewView),CSize(rect.Width()/5,rect.Height()),pContext);
m_wndSpiltter.CreateView(0,1,RUNTIME_CLASS(CGrayTranDlg),CSize(rect.Width()/5,rect.Height()),pContext);
return TRUE;
}

是不是对话框不能被显示在主窗口啊?CDTSCANViewView是可以通过的。但是一运行就报错
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
t_ianya 2008-05-20
  • 打赏
  • 举报
回复
学习,
heku518 2008-05-20
  • 打赏
  • 举报
回复
既然是拆分视图,那么CDTSCANViewView,CGrayTranDlg都应该是视图类,但是你这里面不是!CGrayTranDlg是属于对话框类,而不是视图类,所以出错了!

要先定义m_wndSplitter:
public:
CSplitterWnd m_wndSplitter;

2.必须要把代码放到OnCreateClient这一个函数里!
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;

if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftTree), CSize(200, 100), pContext) ||
!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightList), CSize(100, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}

return TRUE;
}
这样就可以做出你要的效果!楼主别忘了给我加分哦.
cnzdgs 2008-05-20
  • 打赏
  • 举报
回复
m_wndSpiltter -> m_wndSplitter
wltg2001 2008-05-20
  • 打赏
  • 举报
回复
m_wndSplitter.CreateStatic(this,1,2);
===================================
error C2065: 'm_wndSpiltter' : undeclared identifier 明显拼写错了
xiantongyuan 2008-05-20
  • 打赏
  • 举报
回复
1. m_wndSpiltter 没有定义 或者拼写有错。
2. 你的对话框也没有定义,或加头文件。
3. 一般都是把view,拆分为两个view。你试图把它拆分为一个view,一个dialog,恐怕不行。如果确实需要dialog的功能,可以试一下CFormView。
daniel_wang_1983 2008-05-20
  • 打赏
  • 举报
回复
下面是运行程序时候的出错信息!请大家多多指教啊!!




D:\正在研究的程序\DTSCANView拆分视图初步\MainFrm.cpp(148) : error C2065: 'm_wndSpiltter' : undeclared identifier
D:\正在研究的程序\DTSCANView拆分视图初步\MainFrm.cpp(148) : error C2228: left of '.CreateView' must have class/struct/union type
D:\正在研究的程序\DTSCANView拆分视图初步\MainFrm.cpp(148) : error C2039: 'classCGrayTranDlg' : is not a member of 'CGrayTranDlg'
d:\正在研究的程序\dtscanview拆分视图初步\graytrandlg.h(13) : see declaration of 'CGrayTranDlg'
D:\正在研究的程序\DTSCANView拆分视图初步\MainFrm.cpp(148) : error C2065: 'classCGrayTranDlg' : undeclared identifier
执行 cl.exe 时出错.

16,472

社区成员

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

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

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