プロが教えるわが家の防犯対策術!

呼び出し元ダイアログ(A)と

コンボボックスのあるダイアログ(B)

そしてタブの中に入るダイアログ(C)があります。

それぞれのダイアログ内にあるものは以下のとおり
A→ボタン1(IDC_BUTTON1)…Bを呼び出すためのもの
  ボタン2(IDC_BUTTON2)…画像を呼び出すためのもの
  タブ(IDC_TAB1)…Cが入るもの
B→コンボボックス(IDC_COMBO1)…画像を選択するもの
  ↓
  dataは「picture1;picture2」
  OK/CANCELボタン…略
C→ピクチャボックス(IDC_PICT1)…画像を表示させるためのもの

プログラムでAのタブの中にCを入れるところを完成しました。

次に以下のようなことをやりたいのですが、どのように処理をしたらいいのかわかりません。

ボタン1を押す→Bが呼び出される→コンボボックスで画像を選択→ボタン2を押す→タブ内のピクチャボックスにコンボボックスで指定した画像が表示される。

というようにしたいです。
1つのダイアログ上で画像をピクチャボックスに表示するものはやったことがありますが、ダイアログを挟んでの表示はやったことがないためここ2日悩んでいます。

下手な説明かとは思いますがご教授の程よろしくお願いいたします。


※コンボボックス変数→CComboBox m_combo;
ピクチャボックス変数→CStatic m_picture;

A 回答 (1件)

Aダイアログの初期化処理(Aダイアログのオープン時ではなく、生成時に初期化する)


・選択された画像名を記憶しておくグローバル変数を「空文字列」に初期化する

Aダイアログのボタン1の処理
・Bダイアログを生成する
・Bのダイアログをモーダル付きで開く(Bが閉じられるまで、Aに処理が戻らない)
・Bが閉じられるとAに処理が戻るので、返されたモーダルリゾルトを調べ、押されたのがOKかCANCELか判定する
・押されたのがCANCELなら何もしない
・押されたのがOKなら、Bダイアログのコンボボックスで何が選択されていたか取得する
・コンボボックスで何も選ばれていないなら、何もしない
・コンボボックスで選ばれた画像名を、グローバル変数にコピーして格納する
・Bダイアログを破棄する

Aダイアログのボタン2の処理
・グローバル変数に格納されていた画像名が「空文字列」の場合は何もしない
・空文字でなければ、グローバル変数に格納されていた画像名でピクチャボックスに画像を表示する

BダイアログのOK、CANCELボタンの処理
・OKボタンは、モーダルリゾルトに「OK」を意味する値を設定してBダイアログを閉じる
・CANCELボタンは、モーダルリゾルトに「CANCEL」を意味する値を設定してBダイアログを閉じる
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!