2009-06-07 3 views
18

これはVC6から離れた最初のMFCアプリケーションです。少しばかげて感じます。VS 2008、MFC:OnInitDialogを追加する方法

どのようにOnInitDialogハンドラを追加しますか? (手動で追加する方法はわかっていますが、それは長期的には痛みです)。

ダイアログをダブルクリックします。何も表示されません。 ダイアログを右クリックする - 「イベントハンドラを追加する」が無効になります。 プロパティ - メッセージは、「通常」のメッセージがありますが、 プロパティWM_INITDIALOGません - イベントのみ 右クリックし、クラスビューに含まれるコントロールからの通知を保持している - 「追加..」のみの関数と変数

傷が

頭を持っています

[編集] D'ああ - それはMFCでの仮想関数ですが、それでも...

答えて

32

は、私が最初にVC6からVS2008に移動したときに、それはこれを理解するために永遠に連れて行ってくれた、愚かな感じることはありません!

とにかく、また私自身の参照のために、ここでOnInitDialog方法をダイアログボックスを追加し、上書きするための完全な手順は次のとおりです。

  1. 選択リソースビューはと.rcファイルを展開します。
  2. ダイアログボックスを右クリックし、ダイアログボックスを選択します。
  3. プロパティウィンドウを選択します。 (注:このウィンドウが表示されない場合は、表示>>その他のWindowsプロパティウィンドウメニュー項目を選択します。)
  4. プロパティウィンドウで、ダイアログのIDを設定し、例えば、 IDD_MYDIALOG
  5. リソースエディタでダイアログを右クリックし、クラスを追加を選択します。注:IE8がインストールされている場合、Internet Explorerスクリプトエラーが発生することがあります。これを修正する方法の詳細については、this blog postを参照してください。 MFCクラスウィザードダイアログボックスで
  6. 、クラス名を入力し、例えば、CMyDialog、[完了を押して、基本クラスとしてCDialogを選択します。これにより、MyDialog.cppMyDialog.hという名前のファイルが作成され、プロジェクトに追加されます。

    1. ファイルを開くMyDialog.h

  7. CMyDialogクラスのOnInitDialogメソッドをオーバーライドします。
  8. プロパティウィンドウを選択します。
  9. class CMyDialog : public CDialogという行にカーソルを置きます。(CMyDialog VCCodeClass " - プロパティウィンドウはコンテキスト依存性が高く、エディタ内のカーソルの位置によって異なるオプションが表示されるため、これは重要です。
  10. アイコンプロパティのアイコンをクリックします。
  11. プロパティウィンドウを下にスクロールしてOnInitDialogを探します。
  12. このエントリの下向き矢印をクリックし、<を選択します。>を追加します。OnInitDialogこれにより、CMyDialog::OnInitDialog機能が作成されます。

こちらがお役に立てば幸いです。

+0

私はVC6からVS2008に移行した後、これも非常に長い時間私を逃したことに言及したいと思います。これは少し慣れていくことができます。 – adzm

+0

見つけた! :-D いつもあなたが一人ではないことを知るのに役立ちます。 – peterchen

1

ヘッダーファイルを開いてカーソルを配置する必要がないようにも思えます。クラスを作成した後、ClassViewペインでクラスを選択し、プロパティでオーバーライド/メッセージ/イベントを変更できます上述したように。

+1

これは受け入れられる回答に何が追加されますか? – EWit

+1

ヘッダーファイルを開いてカーソルをコードの正しい行に配置して、プロパティペインが正しく表示されるようにする必要はありません。 – wayne

関連する問題