MFC(2005)でアプリケーションを作成しています。
EditBoxとSpinContorol、StaticTextがセットで複数存在するダイアログを作っています。
この3つのコントロールを持つクラスを作成し、ダイアログに表示
し、決まりきった処理を作成したクラス側で行いたいのですが、
やり方がよくわかりません。
1、何する。
2、どうする。
のように教えていただけないでしょうか?
ちなみに、SubclassDlgItemを利用して、ボタンを拡張することができました。複数のコントロールがある場合も、SubclassDlgItemを利用したとき
のような動作をさせたいのですが、その方法がよくわかりません。
こんなイメージなんですが・・・
Dialog(MFC)
+-------------------------------------+
| +-----------+ +------+ +--------+ |
| |StaticText1| |Edit1 | |Button1 | |
| +-----------+ +------+ +--------+ |
| +-----------+ +------+ +--------+ |
| |StaticText2| |Edit2 | |Button2 | |
| +-----------+ +------+ +--------+ |
| +-----------+ +------+ +--------+ |
| |StaticText3| |Edit3 | |Button3 | |
| +-----------+ +------+ +--------+ |
+-------------------------------------+
↑こういうダイアログを作りたくて
+-----+ +------+ +--------+
|TextX| |EditX | |ButtonX |
+-----+ +------+ +--------+
↑
この3つのコントロールを1つにまとめて(例えばCPartsクラス)
関連するメッセージなどの処理はこのクラスの中で行い
Dialogでは、メンバ変数に
CParts m_Parts1;
CParts m_Parts2;
CParts m_Parts3;
とかしてアクセスできるようにするには?
などといった手順が知りたいです。
1.CPartsクラスはDialogを基本クラスとして作ればいいのか?
2.作ったところで実装するダイアログにはどのように実装するのか?
3.メッセージをどのようにして取るのか?
#ダイアログリソースを使用する場合の方法です。
>1.CPartsクラスはDialogを基本クラスとして作ればいいのか?
Yes
>2.作ったところで実装するダイアログにはどのように実装するのか?
コントロールにするダイアログリソースのプロパティを変更
Style→子
Control→True
Visible→True
CDialog::Create()でコントロールを作成します。
>3.メッセージをどのようにして取るのか?
基本コントロール側で処理しますがGetParent()で親の参照もできます。
ツイート | ![]() |