はじめまして。Visual C++ Ver.6を使っています。
ダイアログ上に3つテキストボックスをおいたのですが
変数は配列のように宣言できればいいな、と思っって試行錯誤して
いるのですが、ClassWizardでのやりかたがよくわかりません。。。。
[IDC_BOX1][IDC_BOX2][IDC_BOX3]とあって、今までは
[m_box1][m_box2][m_box3]という具合に変数を付けていたのですが、
できれば m_box[3] みたいにしたいなぁと。。。。
結果的にhogehoge.hでダイアログ変数の宣言部分で
CString m_box[3] と記述させたいのですが、どういう手順で
ClassWizardで変数を作成すればいいのでしょうか?
お手数ですがよろしくお願いします。
補足です。。。
アプリケーションの枠組みはMFC AppWizardで作成しています。
ClassWizardは、配列でのコントロール変数の定義をサポートしません。
自分で書いてください。
// exam.
// ヘッダファイル
CxxxDlg : public CDialog {
public:
CString m_box[3];
...
};
// 定義ファイル
void CxxxDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
// 以下を追加
DDX_Text( pDX, IDC_BOX1, m_box[0] );
DDX_Text( pDX, IDC_BOX2, m_box[1] );
DDX_Text( pDX, IDC_BOX3, m_box[2] );
}
なお、コントロールのID値(IDC_BOX1〜IDC_BOX3)が連続した値であることが
保証されているなら、次のようにループ処理することも可能です。
for( int i = 0; i < 3; ++i ){
DDX_Text( pDX, IDC_BOX1 + i, m_box[i] );
}
また、初期化が必要なら、コンストラクタで初期値を設定してください。
ツイート | ![]() |