我不想使用「圖形資源」來創建對話框!如何以編程方式創建CDialog窗口?
我有什麼至今:
CDialog *dlgWin = new CDialog();
dlgWin->Create("hello"); // <-- but this Errors: "Debug Assertion failed!"
THX
我不想使用「圖形資源」來創建對話框!如何以編程方式創建CDialog窗口?
我有什麼至今:
CDialog *dlgWin = new CDialog();
dlgWin->Create("hello"); // <-- but this Errors: "Debug Assertion failed!"
THX
您需要創建在資源編輯器對話框模板,並將其提供給CDialog
構造。
這裏是documentation,他們還解釋瞭如何在內存中動態創建對話框,它不是微不足道的,我建議不要這樣做。我建議不要一起使用MFC。
MSDN文檔通常編寫得很好,閱讀它。
我爲所有對話框使用一個空的對話框模板,然後使用我自己的GUI佈局庫來生成和管理MFC小部件的大小。不知道你是否真的想這樣做,因爲它需要大量額外的工作,出現問題,但也有功能。
使用Qt或GTK可能是一種方式,但我不喜歡它們。
如果你不想使用對話框資源,那麼使用CDialog就毫無意義。只需從CWnd派生自己的類,使其看起來不僅僅是一個空窗口,而是調用它的RunModalLoop()方法使其成爲一個對話框。 – 2012-04-05 00:24:02