2012-01-19 15 views
-1

私はこの人が私の人生をすぐに奪っているので、別の興味があるはずです。多くの人が私を含むMFCコードの複雑さについて混乱しているようです。私は典型的な戻るまたは次の関数を使用して移動するいくつかのダイアログを作成するMFCダイアログボックスアプリケーションがあります。途中でラジオボタンのボタン、リストボックス、その他のさまざまなコントロールを使ってデータを収集します。ほとんどの場合、AFXマップによって提供されるm_変数を使用して、それぞれの異なるダイアログごとにコード全体でデータを処理する方法を理解しています。対話によって収集されたデータ収集/選択プロセスの終わり、時には、時には、私は収集されたもので何かをする必要があります。 1つのダイアログからデータを取り出し、前のデータに基づいて次のデータを変更する必要があるかもしれません。何かを保存しない限り、最後のデータはダイアログボックスを移動すると消えてしまいます。私はこれを行う方法が数十あることを知っています。オブジェクトを渡すことから、新しいクラス、新しい構造、グローバル変数、ポインタなどを作成するまで、それらのいくつかを試してきました....私の懸念は、私のユーザコードが何かをやるために十分長い間メモリ内で活動し続ける何らかの種類の構造。それは私が思う問題です、私はMFCでこれに対処する方法を知らない。私は現在、dlg_DataHandler(各ダイアログから収集されたデータを格納する)という構造体を、.hファイル内のいくつかのテストメンバーとともに使用することに決めました。これはポインタとしてtypedefされています。私はこのタイプの変数を作成し、それを= 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()を使用して、コード内の他の場所からアプリケーションインスタンスと変数にアクセスすることができます。

関連する問題