怎么制作VC-MFC(Dialog)的分割(切分)视图,网上全是用于view类型的.

abxialiang abxialiang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我需要做一个MFC基于对话框的分割视图,单文档模式下很容易,我也实现了,但是在dialog下弄了好久还是不行.通过"百度""google"找遍了网络,9成以上都是针对view模式的,好容易找了个"CxSplitterWnd"类,它又不说怎么用(demo也没有),试了好久都没有效果.只有向大家求助了.

界面是这么计划的:
A窗口(主窗口),1窗口(子窗口),2窗口(子),3窗口(子).
希望实现:
把A窗口分割成三个部分,放置123三个子窗口,并且A窗口是可以调整大小的,所以窗口内的控件要能跟着变化大小.

我使用CxSplitterWnd的部分代码OnInitDialog():
CCreateContext context1;
context1.m_pNewViewClass = RUNTIME_CLASS(CMyDialog1);
context1.m_pCurrentDoc = NULL;
context1.m_pNewDocTemplate = NULL;
context1.m_pLastView = NULL;
context1.m_pCurrentFrame = NULL;

CCreateContext context2;
context2.m_pNewViewClass = RUNTIME_CLASS(CMyDialog2);
context2.m_pCurrentDoc = NULL;
context2.m_pNewDocTemplate = NULL;
context2.m_pLastView = NULL;
context2.m_pCurrentFrame = NULL;

CCreateContext context3;
context3.m_pNewViewClass = RUNTIME_CLASS(CMyDialog3);
context3.m_pCurrentDoc = NULL;
context3.m_pNewDocTemplate = NULL;
context3.m_pLastView = NULL;
context3.m_pCurrentFrame = NULL;

CWnd * pWnd = NULL;
pWnd = this;
CRect rect;
pWnd->GetClientRect(&rect);

m_splitter.CreateStatic(pWnd,2,1);
m_splitter.CreateView( 0, 0, RUNTIME_CLASS( CMyDialog1 ), CSize( 0, rect.Height()/2 ), &context1 );
m_splitter.CreateView( 1, 0, RUNTIME_CLASS( CMyDialog2 ), CSize( 0, rect.Height()/2 ), &context2 );
//m_splitter.MoveWindow(&rect);//出错


目的是先分两栏,子窗口的属性我也设置了child和None.但是结果是什么反应都没有出现.
...全文
评论 14
收藏 已收藏
分享
返回顶部
abxialiang
界面 15,976 成员 115,866 内容