none
MFC:ダイアログベースのプログラムにソースファイルを追加するには? RRS feed

  • 質問

  • こんにちは。

    MFCで、ダイアログベースのプログラムを作っています。

    プロトタイププログラムは、コンソールプログラム(Win32)でできました。

    プログラムの手足のl部分は、ボタンやエディットコントロールのON関数のところに記述すればいいのは、

    わかっています。

    プログラムのメイン部分はどこ(どこのファイルのどの部分?)に記述すればいいのでしょうか?

    あるいは、プログラムのメイン部分を別のソースファイルに書いて、プロジェクトに追加するのですか?

    追加するのには、どうすればいいですか?

    その書き方は?

    既存のファイルに追加で記述することはありますか?

    検索してもあまり情報がないので、教えてください。

    2017年1月29日 3:44

回答

  • すみません。「プロトタイプの主要部分」が何を指しているのかいまいち把握できていませんが、

    その「主要部分」のコードが、呼び出す側からアクセスできれば、ビルドが通るという意味で基本的にどこに書いてもよいです。MFCアプリケーションで自動的に追加された○○○○Dlg.cppや○○○○.cpp(○○○○はプロジェクト名)に書いてもかまいませんが、複雑な計算ロジックや何かまとまった処理がある場合は、別のファイルにしたほうが見通しがよいです。

    「主要部分」のコードがクラスの場合は、メニューの「プロジェクト」→「クラスの追加」から行い。クラスのコードを書いていきます

    「主要部分」のコードがクラスではなく関数群の場合は、メニューの「プロジェクト」→「新しい項目の追加」から*.cppと*.hの追加を行い。ヘッダーに関数の宣言、cppに対応する関数定義のコードを書いていきます。

    追加したコードを別のcppなどから呼び出す場合は、呼び出す側からアクセスできるようにするため、呼び出す側に追加コードのヘッダーのincludeを追記してください。

    • 回答としてマーク Omusubi Wolf 2017年1月29日 12:23
    2017年1月29日 5:09

すべての返信

  • Visual Studio のバージョンとエディションは何でしょうか?

    MFCのダイアログベースのプログラムを作成するには、「コンソールプログラム(Win32)」ではなく、「新しいプロジェクト」で「Visual C++」→「MFC」→「MFCアプリケーション」と進んでいき、MFCアプリケーションウィザードで、「ダイアログベース」を選択して作成したほうが簡単です。

    2017年1月29日 4:03
  • 返信ありがとうございます。

    Visual Studio Community 2015 を使用しています。

    win32でプロトタイプを作った後、仰るように、ウィザードでダイアログベースのプロジェクトを作りました。

    でも、プロトタイプの主要部分をどこに書いたらいいかわかりません。

    とても簡単なプログラムですが、ハンドラ内だけで完結するものではないです。
    • 編集済み Omusubi Wolf 2017年1月29日 4:13 追加情報
    2017年1月29日 4:10
  • すみません。「プロトタイプの主要部分」が何を指しているのかいまいち把握できていませんが、

    その「主要部分」のコードが、呼び出す側からアクセスできれば、ビルドが通るという意味で基本的にどこに書いてもよいです。MFCアプリケーションで自動的に追加された○○○○Dlg.cppや○○○○.cpp(○○○○はプロジェクト名)に書いてもかまいませんが、複雑な計算ロジックや何かまとまった処理がある場合は、別のファイルにしたほうが見通しがよいです。

    「主要部分」のコードがクラスの場合は、メニューの「プロジェクト」→「クラスの追加」から行い。クラスのコードを書いていきます

    「主要部分」のコードがクラスではなく関数群の場合は、メニューの「プロジェクト」→「新しい項目の追加」から*.cppと*.hの追加を行い。ヘッダーに関数の宣言、cppに対応する関数定義のコードを書いていきます。

    追加したコードを別のcppなどから呼び出す場合は、呼び出す側からアクセスできるようにするため、呼び出す側に追加コードのヘッダーのincludeを追記してください。

    • 回答としてマーク Omusubi Wolf 2017年1月29日 12:23
    2017年1月29日 5:09
  • ダイアログベースアプリケーションを選んだと言うことは、ダイアログリソース上にコントロールを置いているのですよね?
    そういう状態であれば、ボタンはダブルクリックすれば OnBnClicked のメンバー関数が生成されるはずです。

    ダブルクリック(デフォルト)で生成される以外のハンドラを追加したい場合は、コントロールを選んだ上で、プロパティウィンドウの雷アイコンを押して対象のメッセージを選んで追加してください。

    2017年1月29日 5:40
    モデレータ
  • 返信ありがとうございます。何とかできました。

    プログラムをクラスとして、プロジェクトに追加すればいいみたいですね。

    2017年1月29日 12:27