非表示になっているダイアログを、
別のダイアログに配置されてるボタンのクリックイベントで、
表示にしたいいのですが、以下のようにボタンクリックイベントに
記述しても、うまくいきません(エラーが出ます)。
CDLG dlg; //CDLGはダイアログのクラス名です。
dlg.ShowWindow(SW_SHOW);
それで、ShowWindowを使わず、MoveWindow(0,0,0,0,TRUE)で、
大きさを0にしても、だめでした。
ちなみに、両ダイアログは、モーダルで
呼び出しています。
何か、解決策がありましたら、
よろしくお願いします。
Bunといいます。
モーダルですと、非表示ではなくウィンドウを
開いていないのではないでしょうか?
Bunさん、お返事ありがとうございます。
>モーダルですと、非表示ではなくウィンドウを
>開いていないのではないでしょうか?
すみません、言う足りない所がありました。
実は、ダイアログ1・2共に、
「非表示にする前のダイアログの内容を記憶したい」
のです。例えば、両ダイアログにエディットボックスを配置した場合、
その内容を非表示にした後、表示したときも、内容が残ってる、
って言う感じです。
両ボタンイベントで、DoModal関数でもう一方のダイアログを表示し、
EndDialogで現在のダイアログを消した場合、
再表示された(というより、新しく表示された)ダイアログには、
エディットボックスの値が初期化されてしまいます。
そこで、exe起動時、両ダイアログをモーダルで呼び出し、
片方を非表示にして、あとはShowWindowで表示・非表示のみを
行う、という処理にしたくて…。
もし、何かお気づきになられましたら、
お返事いただけないでしょうか。
よろしくお願いします。
Bunさん、お返事ありがとうございます。
>モーダルですと、非表示ではなくウィンドウを
>開いていないのではないでしょうか?
すみません、言う足りない所がありました。
実は、ダイアログ1・2共に、
「非表示にする前のダイアログの内容を記憶したい」
のです。例えば、両ダイアログにエディットボックスを配置した場合、
その内容を非表示にした後、表示したときも、内容が残ってる、
って言う感じです。
両ボタンイベントで、DoModal関数でもう一方のダイアログを表示し、
EndDialogで現在のダイアログを消した場合、
再表示された(というより、新しく表示された)ダイアログには、
エディットボックスの値が初期化されてしまいます。
そこで、exe起動時、両ダイアログをモーダルで呼び出し、
片方を非表示にして、あとはShowWindowで表示・非表示のみを
行う、という処理にしたくて…。
もし、何かお気づきになられましたら、
お返事いただけないでしょうか。
よろしくお願いします。
Bunです。
>再表示された(というより、新しく表示された)ダイアログには、
>エディットボックスの値が初期化されてしまいます。
例えばViewクラスからDoModalを呼んでいると仮定します。
エディットボックスには変数を割り当てておき
ダイアログからIDOKで戻った時に、この変数を
Viewクラスの変数に保存します。
そして、次のDoModalが呼ばれたらViewの変数を
エディットボックスの変数に代入します。
この代入はそのダイアログのInitDialog()内で行えば良いと思います。
いかがでしょうか?
Bunさん、またのお返事、ホントにありがとうございます。
とてもうれしく思います。
EndDialogで消えていく前の状態を、変数に一時的に退避させ、
再び呼ばれたときに、起動イベント(OnInitDialog)でそれを格納すれば、
たしかにできそうですね。
これからその方法でやってみたいと思います。
うまくできましたら、ご報告させていただきます。
Bunさん、ありがとうございます。
これからもよろしくお願いします。
Bunさん、こんにちは。かなです。
先ほど教えていただいたやり方を
試してみた所、うまく画面情報を残したまま、
表示・非表示ができるようになりました。
ホントにありがとうございます。
ダイアログをモーダルで呼び出した場合、
その後に書いた処理は、呼び出したモーダルダイアログが
消された後に回されてしまうんですね。
結局、EndDialogで終了させないと、
別のダイアログの表示・非表示もできないのかなー。
モーダルって、呼び出しやすい分、
操作が難しいなー…。
Bunさん、ありがとうございました。
かなさんこんにちは、Bunです。
>ダイアログをモーダルで呼び出した場合、
>その後に書いた処理は、呼び出したモーダルダイアログが
>消された後に回されてしまうんですね。
「ダイアログ関数から戻ってからでないと次の処理に進めない」
ということですね。
>モーダルって、呼び出しやすい分、
>操作が難しいなー…。
「開いて、戻ってきてから次の処理にすすむ」という処理が
決まっている分、モードレスよりは考えやすいのでは?
>Bunさん、ありがとうございました。
どういたしまして。
私はVC歴○ヶ月の初心者です。お互いにがんばりましょう。