添加對話框資源到CDockablePane

最近突然接到一個任務,需要做一個界面元素比較豐富的DockablePane。由於才接觸MFC對內部機制還不夠了解,想也沒想就用資源管理器畫了一個對話框資源。結果悲劇不幸的發生了。弄了半天也沒有找到什麼辦法把對話框支援生成的CFormView放到CDockablePane上,而CFormView的Create方法也爲私有方法,糾結了一上午沒有弄出一個結果來。後來靈機移動MFC中所有的窗口都是繼承至CWnd,嘗試把CFormView作爲一個CWnd的指針來創建果斷的解決了這個問題。

代碼如下:

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

	// TODO:  Add your specialized creation code here
	CWnd* pWnd = &m_wndMyView;
	if( !pWnd->Create( NULL, NULL, AFX_WS_DEFAULT_VIEW,
		CRect(0, 0, 260, 420), this, ID_LAYOUT_VIEW, NULL))
	{
	 		TRACE0("Failed to create QueryView \n");
	 		return -1;      // fail to create
	 }

	return 0;
}

void CMyPanel::OnSize(UINT nType, int cx, int cy) {  CDockablePane::OnSize(nType, cx, cy);

 // TODO: Add your message handler code here  if( m_wndMyView.m_hWnd)  {   m_wndMyView.MoveWindow( 0, 0, cx, cy);  } }


發佈了17 篇原創文章 · 獲贊 4 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章