2012-04-04 81 views
1

我不想使用「圖形資源」來創建對話框!如何以編程方式創建CDialog窗口?

我有什麼至今:

CDialog *dlgWin = new CDialog(); 
dlgWin->Create("hello"); // <-- but this Errors: "Debug Assertion failed!" 

THX

+4

如果你不想使用對話框資源,那麼使用CDialog就毫無意義。只需從CWnd派生自己的類,使其看起來不僅僅是一個空窗口,而是調用它的RunModalLoop()方法使其成爲一個對話框。 – 2012-04-05 00:24:02

回答

2

您需要創建在資源編輯器對話框模板,並將其提供給CDialog構造。

這裏是documentation,他們還解釋瞭如何在內存中動態創建對話框,它不是微不足道的,我建議不要這樣做。我建議不要一起使用MFC。

MSDN文檔通常編寫得很好,閱讀它。

+0

如果不是MFC,你對GUI有什麼建議? ...我需要按鈕和製表符,編輯框,字符串,繪圖... – jdl 2012-04-04 08:22:02

+0

我會去與.NET。 Qt是另一個(便攜式)選項。也許更多,做一些研究。 – littleadv 2012-04-04 08:34:42

+2

*「我建議不要完全使用MFC。」*爲什麼?因爲你聽說它很舊?我聽說某個地方*「[他] MSDN文檔通常寫得很好」*。 – 2012-04-05 02:26:25

1

我爲所有對話框使用一個空的對話框模板,然後使用我自己的GUI佈局庫來生成和管理MFC小部件的大小。不知道你是否真的想這樣做,因爲它需要大量額外的工作,出現問題,但也有功能。

使用Qt或GTK可能是一種方式,但我不喜歡它們。

相關問題