VS2010中CDockablePane停靠框.doc

上传人:苏美尔 文档编号:8943914 上传时间:2021-01-26 格式:DOC 页数:7 大小:685.50KB
返回 下载 相关 举报
VS2010中CDockablePane停靠框.doc_第1页
第1页 / 共7页
VS2010中CDockablePane停靠框.doc_第2页
第2页 / 共7页
VS2010中CDockablePane停靠框.doc_第3页
第3页 / 共7页
VS2010中CDockablePane停靠框.doc_第4页
第4页 / 共7页
VS2010中CDockablePane停靠框.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《VS2010中CDockablePane停靠框.doc》由会员分享,可在线阅读,更多相关《VS2010中CDockablePane停靠框.doc(7页珍藏版)》请在三一文库上搜索。

1、VS2008中对于MFC的MDI程序界面做了增强,支持很炫的的布局效果,之前还在说不能用CDialogBar类,现在完全可以使用 CDockablePane类替代了,现在只需要新建一个继承自CDockablePane的新类,就可以在其上添加各种控件了,如组合框、对话框等,现 在尝试添加一个对话框。新建一个MFC的多文档程序,如在Wizard中选择标准的MFC MDI新建一个想放入悬浮框的对话框资源IDD_DIALOG_DOCKDLG,Style设为Child,Border设为None,建议把默认添加的OK和 Cancel去掉,因为一般情况下点击这两个按钮后,对话框会销毁,而这里是不需要销毁的(

2、如果没去掉点击了,悬浮框中的对话框内容就不能用了),如下添 加一个按钮IDC_BUTTON_TEST。然后为对话框添加类CTestDlg,如下为按钮添加响应void CTestDlg:OnBnClickedButtonTest() / TODO: Add your control notification handler code here MessageBox(_T(Hello World!);添加继承自CDockablePane的类CMyPane,如下添加此类的WM_CREATE和WM_SIZE响应,并添加上面对话框的成员变量CTestDlg m_TestDlg;在CMyPane:OnCr

3、eate和CMyPane:OnSize函数中添加代码,如下int CMyPane:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CDockablePane:OnCreate(lpCreateStruct) = -1) return -1; / TODO: Add your specialized creation code here CRect rectDummy; rectDummy.SetRectEmpty(); / 创建选项卡窗口: if (!m_TestDlg.Create(IDD_DIALOG_DOCKDLG,this) TRACE0(未能创

4、建输出选项卡窗口/n); return -1; / 未能创建 m_TestDlg.ShowWindow(SW_SHOW); return 0;void CMyPane:OnSize(UINT nType, int cx, int cy) CDockablePane:OnSize(nType, cx, cy); / TODO: Add your message handler code here / 选项卡控件应覆盖整个工作区 m_TestDlg.SetWindowPos (this, -1, -1, cx, cy, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZOR

5、DER); m_TestDlg.ShowWindow(SW_SHOW);然后在MainFrame.h代码中添加成员变量CMyPane m_MyPane;在CMainFrame:OnCreate函数中添加代码if (!m_wndStatusBar.Create(this) TRACE0(Failed to create status barn); return -1; / fail to createm_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT);if (!m_MyPane.Create(_T(My

6、Pane), this, CRect(0, 0, 100, 100), TRUE, IDD_DIALOG_DOCKDLG, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI) TRACE0(未能创建输出窗口/n); return FALSE;m_MyPane.EnableDocking(CBRS_ALIGN_ANY);/ TODO: Delete these five lines if you dont want the toolbar and menubar to be dockablem_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockPane(&m_wndMenuBar);DockPane(&m_wndToolBar);DockPane(&m_MyPane); / 调整m_MyPane的大小使之适合父窗口运行程序,如下点击按钮,弹出Message对话框MyPane悬浮框可以悬浮在各个位置,具体见最上面的图片。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1