2013-11-04 27 views
0

目前我的資源中有兩個對話框模板。如何使用MFC將兩個對話框合併爲一個組合對話框?

我想在合適的模板動態地添加內容到 對話框左側的模板。我將如何做到這一點?

a busy cat

輸出應該是這樣的: a busy cat

而且,我用MFC C++。我對此很陌生,我會非常感謝任何幫助!

這裏是我試圖這樣做,但只有主對話框會顯示:

MainDialogBox *mainDlg = new MainDialogBox(); 
subDialogBox *subDlg = new subDialogBox(mainDlg); 
+0

我知道,這是沒有幫助的,但使用MFC,你需要的? – Raxvan

+0

可悲的是,是的,我要.. – CodeDoctorJL

回答

2

改變孩子對話框模板刪除其標題欄和邊框樣式。這將使它融入並看起來像父母對話框的一部分。

然後創建子對話框作爲無模式對話框的父窗口是父對話框。 (使用CDialog :: Create創建一個無模式對話框。)如果你已經這樣做了,而第二個對話框沒有顯示,也許你沒有設置'可見'樣式。

當您創建父對話框給它的風格WS_EX_CONTROLPARENT。這將有助於父母與孩子之間的鍵盤導航。

最後,您需要將子對話框放在父對話框所需的位置。父級可以將x,y點或矩形傳遞給對話框構造函數。然後,這個孩子(在OnInitDiialog中)可以通過調用SetWindowPos來定位自己。

+0

omgomg謝謝老兄! – CodeDoctorJL

+1

有一個更簡單的方法來定位嵌套的子對話框。只需在父對話框中的希望孩子出現的位置創建一個靜態的「隱藏」文本框。給它一個除IDC_STATIC以外的資源名稱。然後,您可以獲取「隱藏」靜態框的座標,並使用它來定位您的子對話框。 – rrirower