MFC基礎知識(五)——創建停靠窗口

本文主要介紹:在MFC中創建停靠窗口。

一、創建停靠窗口類

創建後的ObjectWnd.h和ObjectWnd.cpp文件如下:

#pragma once
#include "afxdockablepane.h"
class CObjectWnd :
	public CDockablePane
{
public:
	CObjectWnd(void);
	~CObjectWnd(void);
	DECLARE_MESSAGE_MAP()
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);

};

#include "stdafx.h"
#include "ObjectWnd.h"


CObjectWnd::CObjectWnd(void)
{
}


CObjectWnd::~CObjectWnd(void)
{
}

BEGIN_MESSAGE_MAP(CObjectWnd, CDockablePane)
	ON_WM_CREATE()
	ON_WM_SIZE()
END_MESSAGE_MAP()


int CObjectWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDockablePane::OnCreate(lpCreateStruct) == -1)
		return -1;

		return 0;
}


void CObjectWnd::OnSize(UINT nType, int cx, int cy)
{
	CDockablePane::OnSize(nType, cx, cy);
}
二、MainFrm中設置停靠窗口

1. MainFrm.h中添加頭文件ObjectWnd.h,並定義CObjectWnd類的對象

	CObjectWnd		  m_wndObject;
2.  MainFrm.cpp中添加響應程序

BOOL CMainFrame::CreateDockingWindows()  函數中添加:

	CString strObjectView("面向對象");
	if (!m_wndObject.Create(strObjectView, this, CRect(0, 0, 200, 200), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
	{
		TRACE0("未能創建“面向對象”窗口\n");
		return FALSE; // 未能創建
	}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)  函數中添加

	m_wndObject.EnableDocking(CBRS_ALIGN_ANY); //使可停靠與浮動
	DockPane(&m_wndObject);

三、創建完成,效果如下:





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章