2013-12-07 22 views
0

我已經查看了整個互聯網,仍然無法找到對此問題的答案。我使用的是Visual C++(2010),我想知道如何創建一個基於用戶輸入而改變的對話框(MFC,基於對話框的程序)。例如,假設我在對話框上有兩個單選按鈕 - 一個用於圓形和一個矩形。如果用戶單擊矩形,我需要在同一個對話框上顯示「長度」的靜態文本,然後爲用戶輸入長度的編輯控件。現在,如果用戶點擊了圓圈,我需要在同一個對話框上顯示「radius」的靜態文本,以及用戶放置半徑的編輯控件。所以,根據用戶點擊的形狀,不同的選項會出現在同一個對話框中。此外,當使用嚮導在對話框中添加靜態文本或編輯控件或其他任何內容時,我似乎無法找到在cpp文件中實現代碼的位置。如何實現這一點,任何幫助將不勝感激。謝謝!如何基於用戶輸入創建動態更改的對話框visual studio 2010(mfc)

編輯:可以工作的另一件事是,如果在對話框中顯示半徑和長度,但是,例如,如果用戶單擊圓圈,則用戶無法輸入長度編輯控件,並且只能在半徑編輯控件中輸入。謝謝

+0

如果在沒有類嚮導的情況下無法編寫代碼,請不要使用類嚮導。如果無法手動編寫資源腳本,請不要使用資源編輯器。事情沒有意義。至於你的問題:['CWnd :: SetWindowText'](http://msdn.microsoft.com/en-us/library/yhczy8bz.aspx)。 – IInspectable

回答

0

更簡單的方法:使用所有必需的控件設計對話框,使用WS_VISIBLE風格而不是設置,並在需要時顯示/隱藏它們。

+2

這是一個可能的解決方案。它在控件反映其他選項的情況下效果更好。當在對話中佔據相同區域的互斥控件時,它不太可行。它使資源編輯器無用,除非控件是動態重定位的,因此可以任意放置在對話資源中。 – IInspectable

1

當用戶單擊時,您可以更改靜態控件上的文本。在設計模式下,將靜態控件的ID更改爲像IDC_STATIC_SHAPE這樣的唯一ID。在靜態控件上調用SetWindowText將更改其文本。

將控件添加到對話框不會在cpp文件中生成任何代碼。它將代碼添加到* .rc文件,該文件是由資源編譯器編譯並添加到程序資源部分的文本文件。

相關問題