MDI怎么切分啊???1-N SDI中做切分没问题,,但在MDI的MAINFRAME中切分执行就报错,但在CHILD中切分,每个里面都被分为两个VIEW了,我想做成1-N的,,象VC开发环境那样,,怎么做啊??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 VC里没有切分,是DOCK了DIALOGBAR. 你可以DOCK你的DIALOGBAR在MAINFRAME里,就可以实现1-N 英文资料http://www.codeproject.com/docking/sizecbar.aspwww.datamekanix.com 中文资料http://www.vckbase.com/document/viewdoc.asp?id=257May you succeed! 这是我做的一个项目中的切分窗体函数,希望对你有用BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class CRect r; GetClientRect(&r); //创建一个静态分栏窗口,分为连两行一列 if(m_wndSplitter1.CreateStatic(this,2,1)==NULL) return FALSE; //将CLeftView连接到0行0列窗格上 m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(CBottomView),CSize(0,0),pContext); if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0, 0))==NULL) return FALSE; //将第0行0列再分开1行2列 //将CRightView类连接到第二个分栏对象的0行1列 m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CRightView),CSize(0,0),pContext); //////////////////////////////////////////////////////// //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DWORD dwf = CGfxOutBarCtrl::fDragItems|CGfxOutBarCtrl::fEditGroups|CGfxOutBarCtrl::fEditItems|CGfxOutBarCtrl::fRemoveGroups| CGfxOutBarCtrl::fRemoveItems|CGfxOutBarCtrl::fAddGroups|CGfxOutBarCtrl::fAnimation; wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &m_wndSplitter2, m_wndSplitter2.IdFromRowCol(0, 0), dwf); wndBar.SetOwner(this);//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> imaLarge.Create(IDB_IMAGELIST, 32, 0, RGB(128,128,128));//创建大图标图象序列 imaSmall.Create(IDB_SMALL_IMAGELIST, 16, 0, RGB(0,128,128));//创建小图标图象序列 wndBar.SetImageList(&imaLarge, CGfxOutBarCtrl::fLargeIcon);//建立联系 wndBar.SetImageList(&imaSmall, CGfxOutBarCtrl::fSmallIcon);//建立联系 wndBar.SetAnimationTickCount(20);//动画 wndBar.SetAnimSelHighlight(200);//动画 wndBar.AddFolder("监控", 0);//初始化 Folder wndBar.AddFolder("监控", 1); wndBar.AddFolder("监控", 2); wndBar.InsertItem(0, 0, "日志", 0, 0);//Item 1 wndBar.InsertItem(0, 1, "日志", 1, 0);// wndBar.InsertItem(0, 2, "日志", 2, 0);//Item 3 wndBar.InsertItem(0, 3, "日志", 3, 0);//Item 4 wndBar.InsertItem(1, 0, "", 0, 0); wndBar.InsertItem(1, 1, "", 1, 0);//(CPU,内存) wndBar.InsertItem(2, 0, "", 0, 0); wndBar.SetSelFolder(0); ////////////////////////////// //设置 各个窗体的大小 m_wndSplitter1.SetRowInfo(0,r.Height()*2/3,0); m_wndSplitter1.SetRowInfo(1,r.Height()*1/3,0); m_wndSplitter2.SetColumnInfo(0,r.Width()/6,0); pbView=(CBottomView*)this->m_wndSplitter1.GetPane(1,0); prView=(CRightView*)this->m_wndSplitter2.GetPane(0,1); prView->pBottomView=pbView; return TRUE; } dock的view在focus,keyboard和active上面有各种问题,建议还是dock一般的窗口算了,反正view和窗口的区别只是文档支持而已 深夜,散分!!!!! SetWindowLongPtr 做了哪些事情呢 一般什么时候要用到 100分悬赏——XML SPY2005安装了不能用——注册机也找了,还是不行 求优秀毕业设计论文 当程序运行时会有啥消息吗? D3DES 加密算法如何使用? 编译问题,大家快看! VC6写的DLL控件,如果不用win32 unicode release xxx,则放在中文文件夹不能使用。该如何解决? 帮帮我,ODBC坏了! For循环之CListCtrl 引发思考 关于TreeView节点重命名的问题及如何屏蔽F2快捷键: 一个简单而重要的问题:VC6能用到多少年后不能用了?
http://www.codeproject.com/docking/sizecbar.asp
www.datamekanix.com 中文资料
http://www.vckbase.com/document/viewdoc.asp?id=257May you succeed!
{
// TODO: Add your specialized code here and/or call the base class
CRect r;
GetClientRect(&r);
//创建一个静态分栏窗口,分为连两行一列
if(m_wndSplitter1.CreateStatic(this,2,1)==NULL)
return FALSE;
//将CLeftView连接到0行0列窗格上
m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(CBottomView),CSize(0,0),pContext); if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,
m_wndSplitter1.IdFromRowCol(0, 0))==NULL)
return FALSE; //将第0行0列再分开1行2列
//将CRightView类连接到第二个分栏对象的0行1列
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CRightView),CSize(0,0),pContext); ////////////////////////////////////////////////////////
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DWORD dwf = CGfxOutBarCtrl::fDragItems|CGfxOutBarCtrl::fEditGroups|CGfxOutBarCtrl::fEditItems|CGfxOutBarCtrl::fRemoveGroups|
CGfxOutBarCtrl::fRemoveItems|CGfxOutBarCtrl::fAddGroups|CGfxOutBarCtrl::fAnimation; wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &m_wndSplitter2, m_wndSplitter2.IdFromRowCol(0, 0), dwf);
wndBar.SetOwner(this);
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> imaLarge.Create(IDB_IMAGELIST, 32, 0, RGB(128,128,128));//创建大图标图象序列
imaSmall.Create(IDB_SMALL_IMAGELIST, 16, 0, RGB(0,128,128));//创建小图标图象序列 wndBar.SetImageList(&imaLarge, CGfxOutBarCtrl::fLargeIcon);//建立联系
wndBar.SetImageList(&imaSmall, CGfxOutBarCtrl::fSmallIcon);//建立联系 wndBar.SetAnimationTickCount(20);//动画 wndBar.SetAnimSelHighlight(200);//动画
wndBar.AddFolder("监控", 0);//初始化 Folder
wndBar.AddFolder("监控", 1);
wndBar.AddFolder("监控", 2); wndBar.InsertItem(0, 0, "日志", 0, 0);//Item 1
wndBar.InsertItem(0, 1, "日志", 1, 0);//
wndBar.InsertItem(0, 2, "日志", 2, 0);//Item 3
wndBar.InsertItem(0, 3, "日志", 3, 0);//Item 4 wndBar.InsertItem(1, 0, "", 0, 0);
wndBar.InsertItem(1, 1, "", 1, 0);//(CPU,内存) wndBar.InsertItem(2, 0, "", 0, 0); wndBar.SetSelFolder(0);
//////////////////////////////
//设置 各个窗体的大小 m_wndSplitter1.SetRowInfo(0,r.Height()*2/3,0);
m_wndSplitter1.SetRowInfo(1,r.Height()*1/3,0);
m_wndSplitter2.SetColumnInfo(0,r.Width()/6,0); pbView=(CBottomView*)this->m_wndSplitter1.GetPane(1,0);
prView=(CRightView*)this->m_wndSplitter2.GetPane(0,1);
prView->pBottomView=pbView;
return TRUE; }