2012-05-18 30 views
0

DDX技術是爲了將資源與類成員鏈接而創建的(例如)。在我的解決方案中,我需要使myCCtreeCtrl(CCtreeCtrl的瞬間)之間的連接不會與類成員CCtreeCtrl一起生存在資源中。 現在我的CTreeCtrl在資源及其silmple的DoDataExchange:尋求替代DDX

#define IDC_TREE_LAYER0     2000 
#define IDC_TREE_LAYER1     2001 
#define IDC_TREE_LAYER2     2002 


// ============================================================================ 
void ForcesGUI::doDataExchange(int id0, int id1, int id2, CDataExchange* pDX) 
// ============================================================================ 
{ 
    DDX_Control(pDX, id0, m_tree[0].data); 
    DDX_Control(pDX, id1, m_tree[1].data); 
    DDX_Control(pDX, id2, m_tree[2].data); 
} 

但將來會需要從資源刪除CCtreeCtrl,使實例。

你會問我爲什麼你需要從資源中刪除?

答案是:在項目中,我有3個CCtreeCtrls,他們每個人都住在他自己的酒吧裏。他們之間沒有什麼不同。這就是爲什麼我想使用1 bar類而不是冗餘的原因。在我創建了3個小節的實例之後,這裏出現了DDX的問題,這在這裏不起作用。

你有什麼想法,我該如何更換基本的DDX?可能會是WinAPI或其他。無論如何,謝謝你的幫助。

+1

很難破譯你的問題。不確定你在問什麼。 –

+0

用兩個詞我需要編寫方法(如DDX),它將執行對象myCCtreeeCtrl和類成員m_CCtreeCtrl之間的交互。問題是我無法使用資源。 – Diego666

回答

1

如果控件不是從對話框資源自動生成的,則必須使用Create方法創建它。您需要在OnInitDialog或您的父窗口中執行相同的操作。通過創建窗口Create它將自動連接到您創建它的對象 - 無需DDX_Control。

+0

完美。謝謝,馬克,我甚至沒有想到這很容易。 – Diego666