*********菜鸟的痛苦,关于CSplitter*********

beegee 2001-06-26 12:32:16
想左右各一个CLeftView和CRightView,都是对话框做的,基类是CFormView
...
m_wndSplitter.CreateStatic(this, 1, 2);
...
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100,100),pContext));
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100,100),pContext));
SetActiveView((CView*) m_wndSplitter.GetPane(0, 0));
...
运行根本就没什么分隔。看有贴子说加上cs.Style = WS_CHILD;到preCreateWindow();中。加了,运行时报"建立单文档失败"...
Help!
...全文
295 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
beegee 2001-07-01
  • 打赏
  • 举报
回复
Sorry!And thanks!
我基本功太差!
wjyasd 2001-07-01
  • 打赏
  • 举报
回复
问题解决了吗?

看看你的那个帖子吧!
beegee 2001-06-30
  • 打赏
  • 举报
回复
rosement()收到了我的邮件吗?
formula 2001-06-28
  • 打赏
  • 举报
回复
1.在CMainFrame中加入成员:
CSplitterWnd m_wndSplitter1;
CSplitterWnd m_wndSplitter2;

2.把窗口拆分成三格,形如"|-":

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* p

Context)
{
m_wndSplitter1.CreateStatic(this,1,2);
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CSpformView),
CSize(300,0),pContext);
m_wndSplitter2.CreateStatic(&m_wndSplitter1,2,1,
WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(0,1));
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CTest1View),
CSize(0,150),pContext);
m_wndSplitter2.CreateView(1,-0,RUNTIME_CLASS(CTest2View),
CSize(0,0),pContext);
return TRUE;

}
这样一来,三个窗格的视类分别是CSpformView、CTest1View、Ctest2View,
不过必须在CMainFrame类的实现文件头包含一下文档类及这三个视类的类定义(.h)文件。
runbuff 2001-06-28
  • 打赏
  • 举报
回复
关注。
beegee 2001-06-28
  • 打赏
  • 举报
回复
to rosement()我要zip的,好吗?
greensleeve 2001-06-27
  • 打赏
  • 举报
回复
wrongt 2001-06-27
  • 打赏
  • 举报
回复
to admireO(初学者) :先谢谢了
我不是大明 2001-06-27
  • 打赏
  • 举报
回复
i td ut
rosement 2001-06-27
  • 打赏
  • 举报
回复
我不是已经给你代码了吗????
admireO 2001-06-27
  • 打赏
  • 举报
回复
请问为什么要用多文档呢?
如果很急,明天帮你看看了,可今晚我要去看球,呵呵
wrongt 2001-06-27
  • 打赏
  • 举报
回复


不好意思,小弟真是没办法了,老板下星期就
要我交任务,问题贴出来已经两个星期了,就是找不到答案,
所以真是sorry了,在这占用你们的空间,希望能给小弟一个答复!先谢谢了!!

我用VC建了一个 以 CEditView 为基类的 MDI (其他什么代码也没写),当我打开一个*.asm时,想一行一行的读汇编代码,然后把它送计算机端口,请问我该怎么得到一行一行的代码?
能把其中一些例子的代码贴出来更感谢!!
或转到http://www.csdn.net/expert/topic/171/171611.shtm

本人邮箱:wrongt@163.com




KissYou 2001-06-27
  • 打赏
  • 举报
回复
哥们,非常重要的一点,楼上各位都没说到:
确保你的对话框的style设置成:child;Border设置成:none
其它的同上!
另外:记住:一定要在OnCreateClient函数中产生!
beegee 2001-06-27
  • 打赏
  • 举报
回复
好象和RecalcLayout()所在的位置有关
xuyongshuo 2001-06-27
  • 打赏
  • 举报
回复
你可以用msdn上viewex的例子
xuyongshuo 2001-06-27
  • 打赏
  • 举报
回复
应该在CChildFrame的OnCreateClient()上增加你的代码
seesi 2001-06-27
  • 打赏
  • 举报
回复
void CEmpolyManageView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);

//控制窗口放缩事件
// TODO: Add your message handler code here
m_WndSplitter.MoveWindow(0, 0, cx, cy);

//We just want to set the X column upon creation of the view. This way the user can
//move the splitter bar to how they like it and still resize the frame window
//without it snapping back:
// if(m_bShouldSetXColumn)
//m_WndSplitter.SetColumnInfo(0, cx/3, 0);
m_WndSplitter.SetColumnInfo(0, 200, 0);
//OnInitialUpdate();
m_WndSplitter.RecalcLayout();
}
seesi 2001-06-27
  • 打赏
  • 举报
回复
或者在OnCreate中也还可以建立。
int CEmpolyManageView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
m_WndSplitter.CreateStatic( this, 1, 2);
CCreateContext *pContext = (CCreateContext*) lpCreateStruct->lpCreateParams;
lpCreateStruct->style |= WS_OVERLAPPED;
BOOL a,b;
a = m_WndSplitter.CreateView(0,0, RUNTIME_CLASS(CDepTree), CSize(0,0), pContext);
b = m_WndSplitter.CreateView(0,1, RUNTIME_CLASS(CEmpList), CSize(0,0), pContext);
m_pTree = (CDepTree*)m_WndSplitter.GetPane(0,0);
m_pList = (CEmpList*)m_WndSplitter.GetPane(0,1);
m_WndSplitter.RecalcLayout();

return 0;
}
seesi 2001-06-27
  • 打赏
  • 举报
回复
Imbeginner讲的有问题,CCreateContext都到哪里去了。他里面包含相应的文档类信息等等,
这样视图跟文档的关系可能就脱离了。ahphone(阿丰)的方法是标准的方法。在任何一个View都可以使用GetDocnent方法得到文档类指针。
对于后来的问题,
处理OnSize
if(m_wndSplitter.GetSafeHwnd())
{
m_wndSplitter.MoveWindow(0,0,cx,cy);
m_wndSplitter.RecalcLayout();
}看看
beegee 2001-06-27
  • 打赏
  • 举报
回复
诸位大虾。菜鸟我太笨,不过以上都试验了。没救,谢谢了我会给分的
加载更多回复(11)

16,472

社区成员

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

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

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