2012-01-19 107 views
-1

我應該找到另一個興趣,因爲這個快速消除了我的生活。似乎很多人都對包括我在內的MFC代碼的複雜性感到困惑。我有一個MFC對話框應用程序,該應用程序創建了幾個使用典型的後退或下一個功能導航到的對話框。一路上,您通過無線電組按鈕,列表框和各種其他控件收集數據。大多數情況下,我理解如何通過在整個代碼中爲每個不同的對話使用AFX映射提供的m_變量來處理數據。最後 - 有時候 - 通過對話收集數據收集/選擇過程,我需要對收集到的內容進行處理。我可能需要從一個對話框中獲取數據,並根據之前的數據修改下一個數據。看起來,當你移動對話框時,除非你以某種方式保存,否則最後的數據將丟失。我知道有幾十種方法可以做到這一點,我從其中的幾個方面開始,從對象傳遞,到創建新類,新結構,全局變量,指針,不管....我關心的是,我需要一個數據某種類型的結構可以在內存中保持活躍狀態​​,足以讓我的用戶代碼對其進行處理。這是我想的問題,我不知道在MFC中如何處理這個問題。我目前決定使用一個名爲dlg_DataHandler的結構(用於容納來自每個對話的收集數據)以及一個.h文件中的一些測試成員。它已經被作爲指針鍵入。我正在創建一個這種類型的變量,並將其設置爲= new dlg_DataHandler,但數據沒有像我想從對話框到對話框那樣傳遞。我想知道的一件事是,我不知道在哪裏放置用於創建變量的「新」聲明。它好像數據沒有流入和流出結構一樣。反正這裏是一些代碼:如何收集數據並將其傳遞給我

// file1.h 

typedef struct dlg_DataHandler { 

    int var; 
    char* String; 
    int RepetitionRadio; // radio button data 
     constructor here 
} *dlgDataHandler; 

extern dlgDataHandler DlgData; 
//***************** 



// file2.cpp 

dlg_DataHandler DlgData = new dlg_DataHandler; // not located anywhere in peticular just in the code since I DON'T KNOW where to put it. DlgData->member gets loaded in the dialog .cpp files to try collect data, but it doesnt seem to be passing data across the different windows. 

回答

1

把變量在你的主應用程序類(從CWinApp派生的)和InitInstance()new。然後,您可以使用AfxGetApp()來訪問應用程序實例,並從您的代碼中的其他任何位置訪問您的變量。

相關問題