フォームの表示 – プログラミング – Home

通知
すべてクリア

[解決済] フォームの表示


りり
 りり
(@りり)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

はじめまして!!
りり@VC++初心者です。

MFC AppWizard(exe)をウィザードにて作成します。
--------------------------------
アプリケーションの種類:SDI
基本クラス:CFormView
--------------------------------
あるイベントでフォームAを表示したいのですが上手くいきません。
現象として一瞬だけフォームAが表示されるのですが、直ぐに消えて(後ろに隠れてる?)
しまします。ソースコードは以下の通りです。
void CMainFrame::OnOK()
{
int iRet; //DoModal()の戻り値

CDlgSetup dlg;
iRet = dlg.DoModal(); // フォームAを表示
}
何か少しでも情報が御座いましたら教えて頂けないでしょうか。


引用未解決
トピックタグ
TAD
 TAD
(@TAD)
ゲスト
結合: 23年前
投稿: 54
 

ダイアログがすぐに消えるということですが、DoModal がすぐに終了してしまうということで
しょうか?
DoModal にブレークポイントを設定し、ステップ実行(F10)で確認できると思います。

すぐに終了してしまう場合、CDlgSetup クラス (特に OnInitDialog)に問題があるのと思いま
す。確認してみてください。

また、解決法の1つとして、CDlgSetup のコンストラクタに親ウィンドウのポインタを渡す
と、うまく動作するかもしれません。

CDlgSetup dlg(this);
iRet = dlg.DoModal();


返信引用
りり
 りり
(@りり)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

TADさん返答ありがとうございます。

ステップ実行したところすぐに終了してしまいます。
通常のDialogの挿入で作成したものに関しては上手くいくのですが、
もともと生成されているDialog(CFormView)のコピーの挿入だと上手くいきません。

何かわかる事があれば
返答の程、宜しくお願い致します。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

フォームのプロパティで[スタイル]が[チャイルド]になっていませんか?
[ポップアップ]にしないと、ポップアップ表示できません。
(CFormViewの場合はメインウィンドウの中に表示されるので
 [チャイルド]スタイルになっています。)


返信引用
りり
 りり
(@りり)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

dairygoodsさんありがとうございます。
まさにその通りでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました