| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1976 人关注过本帖
标题:静态切分窗口
取消只看楼主 加入收藏
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
 问题点数:0 回复次数:7 
静态切分窗口
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext *pContext)
{
CRect cr;
GetWindowRect(&cr);
CSize paneSize(cr.Width()/3,cr.Height()/3);
m_Splitter.CreateStatic(this,3,1);
m_Splitter.CreateView(0,0,RUNTIME_CLASS(CSingleDocView),paneSize,pContext);
m_Splitter.CreateView(1,0,RUNTIME_CLASS(CSingleDocView),paneSize,pContext);
m_Splitter.CreateView(2,0,RUNTIME_CLASS(CSingleDocView),paneSize,pContext);
return TRUE;
}
这是一个静态切分窗口的函数,但是却不能正常运行
那位高手帮忙解决一下好吗?
谢谢!
搜索更多相关主题的帖子: 切分 静态 窗口 
2007-03-12 21:47
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 
但是,在SingleDocView.h这个头文件里,总是提示CSingleDocDoc* GetDocument();有问题:
d:\实验结果\vc++\singledoc\singledocview.h(21) : error C2143: syntax error : missing ';' before '*'
d:\实验结果\vc++\singledoc\singledocview.h(21) : error C2501: 'CSingleDocDoc' : missing storage-class or type specifiers
d:\实验结果\vc++\singledoc\singledocview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
我知道这不是这个语句的问题,但不知道问题出在哪。
版主帮帮忙,好吧?

当你开始怀疑自己时,说明你已经失去了判断力
2007-03-13 10:08
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 
版主说的对阿
但是,却不能正常显示,提示EXE文件出现问题,要求关闭。

当你开始怀疑自己时,说明你已经失去了判断力
2007-03-13 14:50
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 

麻烦版主拉

xKvPrqP5.rar (137.21 KB) 静态切分窗口



当你开始怀疑自己时,说明你已经失去了判断力
2007-03-13 17:41
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 

我重新建立了一个应用程序,重载之后却提示cr没有声明,这应该是什么问题呢?
是编译器的问题吗?


当你开始怀疑自己时,说明你已经失去了判断力
2007-03-13 21:05
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 

将一个窗口纵向切成三个部分,并且这三个部分可以通过鼠标拖动来调节相对大小。代码我自己添加的很少,
只是为框架类CMainFrame重载了OnCreateClient()函数,并修改了代码。
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext* pContext)
{
CRect cr;
GetClientRect(&rc);
CSize paneSize(cr.Width()/3,cr.Height()/3);
m_Splitter.CreateStatic(this,3,1);
m_Splitter.CreateView(0,0,RUNTIME_CLASS(CSingleDocView),paneSize,pContext);
m_Splitter.CreateView(1,0,RUNTIME_CLASS(CSingleDocView),paneSize,pContext);
m_Splitter.CreateView(2,0,RUNTIME_CLASS(CSingleDocView),paneSize,pContext);
return TRUE;
}
这段代码好像没有问题吧?
真不知道问题出在哪里?


当你开始怀疑自己时,说明你已经失去了判断力
2007-03-14 07:54
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 
我好像解决了,不知是怎么回事。程序应该是通过GetClientRect函数来获得窗口矩形,通过CreateStatic函数建立切分窗口,最后由CreateView函数建立三个视图窗口。
我把GetClientRect注释掉,结果却能正常运行了。
希望版主能给个说明。

当你开始怀疑自己时,说明你已经失去了判断力
2007-03-14 08:11
边城路人
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:591
专家分:0
注 册:2007-3-8
收藏
得分:0 
GetClientRect(rc);这样也不行的。

当你开始怀疑自己时,说明你已经失去了判断力
2007-03-14 16:10
快速回复:静态切分窗口
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025600 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved