CDockablePane的使用
来源:互联网 发布:mac版pscc2018破解 编辑:程序博客网 时间:2024/06/05 00:55
编译环境:win7
编译工具:VS2010
内容一:新建一个CDockablePane派生类。
新建一个单文档
从CDockablePane派生出一个Pane类
在MainFrm中加入:
Pane pane;
在MainFrm的OnCreate的方法中加入
// TODO: 在此添加您专用的创建代码
if (!pane.Create(_T("面板"), this, CRect(0, 0, 200, 200), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create LeftPane\n");
return -1;
}
pane.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&pane);
在BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)与END_MESSAGE_MAP()中间加入
ON_WM_CREATE()
运行得到:
在CDockablePane中嵌入对话框
CDockablePane类可以用来创建停靠栏。可以将其他控件集成到CDockablePane的派生类中。本文描述如何将对话框集成到CDockablePane中。集成其他控件的方式类似。
1、首先创建多文档应用程序,创建一个对话框类CTestDlg。
2、在程序添加一个停靠栏类,名为ControlPanel,其父类为CDockablePane,在该类中添加对话框成员。
需要将对话框的style设置为child。另外border设置为none的话,得到的界面看上去会更主流一点。
1: class ControlPanel : public CDockablePane
2: {
3: .....
4: public:
5: CTestDlg m_dlg;
6: };
3、在ControlPanel的OnCreate方法中创建并显示对话框。
1: int ControlPanel::OnCreate(LPCREATESTRUCT lpCreateStruct)
2: {
3: if (CDockablePane::OnCreate(lpCreateStruct) == -1)
4: return -1;
5:
6: // TODO: Add your specialized creation code here
7:
8: m_dlg.Create(IDD_DIALOG_TEST,this);
9: m_dlg.ShowWindow(SW_SHOW);
10: return 0;
11: }
4、ControlPanel销毁时,对话框也销毁掉:
1: void ControlPanel::OnDestroy()
2: {
3: CDockablePane::OnDestroy();
4:
5: // TODO: Add your message handler code here
6: m_dlg.DestroyWindow();
7: }
5、ControlPanel尺寸变化、隐藏的时候,对话框也要做相关处理:
1: void ControlPanel::OnSize(UINT nType, int cx, int cy)
2: {
3: CDockablePane::OnSize(nType, cx, cy);
4:
5: // TODO: Add your message handler code here
6: if(m_dlg.GetSafeHwnd())
7: {
8: CRect rct;
9: GetClientRect(rct);
10: m_dlg.MoveWindow(rct);
11: }
12: }
6、在框架类中添加ControlPanel成员:
1: class CMainFrame : public CMDIFrameWndEx
2: {
3: ...
4: ControlPanel m_Panel;
5: ...
6: };
7、在框架类创建时,创建这个ControlPanel对象:
Create函数里面的666是这个停靠栏的ID,这里是随便指定的一个数值,只要不和其他已用资源重复即可,真正应用的时候,以在字符串表中添加一个ID。
1: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
2: {
3: ...
4: m_Panel.Create(_T("tset"),this,CRect(0,0,300,300),TRUE,666,
5: WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI);
6: m_Panel.EnableDocking(CBRS_ALIGN_ANY);
7:
8: EnableDocking(CBRS_ALIGN_ANY);
9: DockPane(&m_Panel);
10: ...
11: }
编译运行后,可以发现框架中添加了一个停靠栏,之前创建的那个对话框嵌入在里面。
- CDockablePane的使用
- CDockablePane的使用
- CDockablePane的使用
- CDockablePane的使用
- CDockablePane的使用
- CDockablePane类的使用
- CDockablePane的使用与注意
- CDockablePane 使用
- VS2008/2010 CDockablePane类的使用
- CDockablePane使用及实例
- CDockablePane使用心得
- CDockablePane使用时问题
- CDockablePane使用心得
- CDockablePane使用及实例
- CDockablePane使用心得
- CDockablePane使用心得
- CDockablePane使用心得
- CDockablePane使用心得
- 观察者模式(Observer Pattern)(三):使用java内置的支持实现HeadFirst气象站
- JAVA的MAP的方法
- Android 动态设置Layout的显示与否
- 代码的坏味道之十五 :Message Chains(过度耦合的消息链)
- 各种获取URL的方法
- CDockablePane的使用
- 在Winform获取机器信息IP、MAC、机器名、CPU编号、主硬盘编号
- ACM Steps_Chapter Five_Section2
- AES和RSA加密算法调研
- Fedora各个历史版本官方下载地址
- Oracle日期、字符串格式化函数,位数不足前面加0,一位数字显示两位,格式化数字为定长
- 对Android4.0中Launcher2一些调试记录
- 【记录】JAVAWeb开发之Servlet-19.Filter
- hadoop,用户制定类