//專案時MDI型別的
// MyToolPanel.h檔案
class CMyToolPanel : public CDockablePane
{
DECLARE_DYNAMIC(CMyToolPanel)
public:
CMyToolPanel();
virtual ~CMyToolPanel();
protected:
DECLARE_MESSAGE_MAP()
protected:
CmyOpDlg m_dlg;
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
afx_msg void OnSize(UINT nType, int cx, int cy);
};
// MyToolPanel.cpp檔案
int CMyToolPanel::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDockablePane::OnCreate(lpCreateStruct) == -1)
return -1;
m_dlg.Create(IDD_DIALOG1, this);
m_dlg.ShowWindow(SW_SHOW);
return 0;
}
void CMyToolPanel::OnDestroy()
{
CDockablePane::OnDestroy();
m_dlg.DestroyWindow();
}
void CMyToolPanel::OnSize(UINT nType, int cx, int cy)
{
CDockablePane::OnSize(nType, cx, cy);
if(m_dlg.GetSafeHwnd())
{
CRect rct;
GetClientRect(rct);
m_dlg.MoveWindow(rct);
}
}
// 在CMainFrame::OnCreate中加入以下代碼。其中m_Panel在MainFrm.h定義CMyToolPanel m_Panel;
m_Panel.Create(_T("Dlg Tool"),
this,
CRect(0, 0, 200, 200),
true, //true:可以顯示標題欄,并能停靠.false則取消標題欄和停靠。
1301,
WS_CHILD
| WS_VISIBLE
| WS_CLIPSIBLINGS
| WS_CLIPCHILDREN
| CBRS_RIGHT| CBRS_LEFT //
| CBRS_FLOAT_MULTI);
DockPane(&m_Panel);
m_Panel.EnableDocking(CBRS_ALIGN_RIGHT| CBRS_ALIGN_LEFT);
// 運行時,主視窗背景不能重繪,子視窗不能操作,也看不到停靠視窗,如果在視圖選單中不選擇Dlg Tool則可以正常顯示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/16946.html
標籤:界面
