2010-02-18 44 views
0

嗨,現在我正在2003 vC++中工作,並將我的項目轉換(遷移)到vc 2008或新的vc 2010測試版中,包2008,2010問候CDockable窗格(自動Hode,浮動),所以我需要此功能,我想放置一個對話框或對話框欄(CDockable窗格類),所以我在我的下面的代碼如何將對話框或對話框放入vc 2008或vc 2010的窗格中試試

Myframe代碼片段:

if (!m_MyPane.Create(L"MyPane", this, CRect(0,0,0,0), true, IDD_DIALOG1, WS_CHILD|WS_VISIBLE)) 
    return -1; 
AddDockSite(); 
EnableDocking(CBRS_ALIGN_ANY); 
EnableAutoHidePanes(CBRS_ALIGN_ANY); 
m_MyPane.EnableDocking(CBRS_ALIGN_ANY); 
DockPane(&m_MyPane, AFX_IDW_DOCKBAR_RIGHT); 

MyPane class Definition is : 

#include "stdafx.h" 

#include "Pane.h" 
#include "Resource.h" 
#include "MainFrm.h" 
#include "soft1.h" 

#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 

CPane1::CPane1() 
{ 
} 
CPane1::~CPane1() 
{ 

} 

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

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

return 0; 
} 

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

當我建立它不會顯示任何錯誤,並在輸出的執行沒有錯誤幀顯示mypane但mypane並沒有表現出IDD_DIALOG1

因此,它是什麼是我錯過了請糾正我的代碼,以及如何在放置IDD_DIALOG1對話框來mypane

請幫我

REGARDS G.BALAJI

回答

1

簡短的回答是它很難把一個對話框放到CDockablePane中(我知道我已經完成了)。但是,如果使用CPaneDialog,則很容易。如果要轉換之前位於CDialog或CDialogBar中的對話框,則需要打開對話框編輯器中的「可見」標誌。否則發生一些奇怪的事情。 (CDialog要求標誌關閉,但CPaneDialog要求它打開。)

+0

Arrrrgh!我花了兩天的時間試圖讓這個工作。所需要的只是在對話資源中設置WS_VISIBLE標誌。感謝您的解決方案! – Stefan 2011-04-15 06:51:15