はじめまして!!
りり@VC++初心者です。
MFC AppWizard(exe)をウィザードにて作成します。
--------------------------------
アプリケーションの種類:SDI
基本クラス:CFormView
--------------------------------
あるイベントでフォームAを表示したいのですが上手くいきません。
現象として一瞬だけフォームAが表示されるのですが、直ぐに消えて(後ろに隠れてる?)
しまします。ソースコードは以下の通りです。
void CMainFrame::OnOK()
{
int iRet; //DoModal()の戻り値
CDlgSetup dlg;
iRet = dlg.DoModal(); // フォームAを表示
}
何か少しでも情報が御座いましたら教えて頂けないでしょうか。
ダイアログがすぐに消えるということですが、DoModal がすぐに終了してしまうということで
しょうか?
DoModal にブレークポイントを設定し、ステップ実行(F10)で確認できると思います。
すぐに終了してしまう場合、CDlgSetup クラス (特に OnInitDialog)に問題があるのと思いま
す。確認してみてください。
また、解決法の1つとして、CDlgSetup のコンストラクタに親ウィンドウのポインタを渡す
と、うまく動作するかもしれません。
CDlgSetup dlg(this);
iRet = dlg.DoModal();
TADさん返答ありがとうございます。
ステップ実行したところすぐに終了してしまいます。
通常のDialogの挿入で作成したものに関しては上手くいくのですが、
もともと生成されているDialog(CFormView)のコピーの挿入だと上手くいきません。
何かわかる事があれば
返答の程、宜しくお願い致します。
フォームのプロパティで[スタイル]が[チャイルド]になっていませんか?
[ポップアップ]にしないと、ポップアップ表示できません。
(CFormViewの場合はメインウィンドウの中に表示されるので
[チャイルド]スタイルになっています。)
dairygoodsさんありがとうございます。
まさにその通りでした。