VC 怎样隐藏分隔条,就是我单文档的程序,分割成了两个窗口,然后不想让分隔条显示出来,有什么办法吗

 我来答
bhtzu
2013-05-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4623万
展开全部
如果是希望分隔条隐藏到最边上(等于其中一个view隐藏)这个是可以的,不过我想,你可能是要在中间就隐藏?
这个。。好像不行,即使你设置宽度0,也会存在一条线,分隔条也不支持showwindow方法。
如果要实现,只能自己派生后定制CSplitterWnd吧
更多追问追答
追问
隐藏到最边上也行,那怎样隐藏其中的一个VIEW呢?
追答
要隐藏分割器窗口中的某个视图,只需调用:
GetPane函数得到视图指针,然后调用ShowWindow函数隐藏窗口。
你隐藏到边上不就变成一个view了?那还分隔做什么。。。

有个例子,我复制过来,你试试吧:
CSplitterWnd没有提供设置分割条尺寸的public函数,通过分析CSplitterWnd的源码得知:
它里面有几个没有公开的受保护的成员变量:
m_cxSplitter,
m_cySplitter,
m_cxBorderShare,
m_cyBorderShare,
m_cxSplitterGap,
m_cySplitterGap,
m_cxBorlder,
m_cyBorlder
通过重新构造m_cxSplitterGap,m_cySplitterGap变量的值,就可以实现改变分割条尺寸的功能。
------------------------------------解决方案-----------------------
1.从CSplitterWnd派生一个新类CMySplitterWnd;
2.在.h文件中添加成员变量和函数如下:

int
m_cx;
int
m_cy;
void
HideSplitter();
void
ShowSplitter();
3.在cpp文件中添加实现代码如下:
void CMySplitterWnd::HideSplitter()
{
m_cx=m_cxSplitterGap;//save
previous cx
m_cy=m_cxSplitterGap;//save
previous cy
m_cxSplitterGap=0;
m_cySplitterGap=0;
}
void CMySplitterWnd::ShowSplitter()
{
m_cxSplitterGap=m_cx;
m_cySplitterGap=m_cy;
}
4.使用新类CMySplitterWnd生成分割器窗口,在需要的时候调用HideSplitter、ShowSplitter函数即可。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式