2010-04-14 24 views
3

而不是在一個大對話框中的一切,我看着能夠顯示單獨的控件組的子對話框。想法是這些不是像浮動工具欄那樣的自由浮動的子對話框,但是將顯示沒有標題欄,它們的位置鎖定到父對話框......所以當你拖動父對話框時,任何打開的子對象也被拖動。在MFC(VS2005)中顯示非模態子對話框的正確方法是什麼?

注意:這些子窗口不在父對話框內,它們通常會粘在邊緣。

在MFC/VC++ 2005中,最好的方法是什麼?爲了測試,我目前有一個標準的基於MFC對話框的應用程序設置,其中包含CMainDlg,然後我創建了一個'窗口小部件對話框'CWidgetDlg。到目前爲止,我已經有了一個成員變量CWidgetDlg MainDlg::m_WidgetCMainDlg與控制器像

CMainDlg::OnDisplayWidgetBtn() 
{ 
m_Widget.ShowWindow(TRUE); 
} 

一個按鈕,但當然m_Widget並沒有一個HWND設置,我試圖記住這樣做的正確方法?對於對話框控件,我可以使用DDX,但兒童對話框呢?

這是一個合理的方法,還是有更好,更自動化的方式?

回答

3

嘗試:

// IDD_WIDGET is the resource id for your widget dialog 
m_Widget.Create(IDD_WIDGET, this); 

不要忘記屬性設置風格child

+0

顯示正常,但不能超出父窗口。有一個簡單的風格改變? – 2010-04-14 12:39:54

+0

其實這是一個完整的其他問題。我會提出這樣的! – 2010-04-14 13:01:06

+0

@約翰,是的,那是另一回事。在該senario上,您將不得不創建無模式對話框並編寫代碼來重新定位它們。我不認爲有一個簡單的方法,因爲MFC不支持。 – 2010-04-14 13:06:35

0

而不是讓一切都在一個大 對話框,我看能 顯示子窗口單獨 組的控制。我們的想法是,這些 不是自由浮動的子窗口 像浮動工具欄,但將是一個沒有標題欄顯示 ,他們 位置鎖定於母公司 對話框......所以,當你拖動對話框任何打開的父 孩子也被拖了。

我想你可以去多文檔界面。您可以創建自己的對話框,添加文檔模板並使用它們以獲取適當的功能。孩子將留在一個主父框架內,並且只要父母被拖動就會沿着父母移動。

相關問題