質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

12849閲覧

SetWindowPosでダイアログが最前面に表示されない

pikopaso

総合スコア10

MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2017/11/28 06:25

編集2017/11/30 04:56

mfcで親ダイアログのボタンを押下し、DoModal()で子ダイアログを呼び出すプログラムで、子ダイアログが親ダイアログ後ろに表示されてしまっています。
そこで、子ダイアログのOnInitDialog()内にSetWindowPos( &wndTopMost , 0, 0, 0, 0, SWP_SHOWWINDOW);を記述して最前面に表示させようとしたのですが。。
うまくいかず、一瞬最前面に表示され、親ダイアログの後ろに隠れてしまってしまいます。
何かおかしいのが、子ダイアログのタブやボタンの一部が、親ダイアログを突き抜けるように表示されていることです。
何か思い当たることはありますでしょうか??
追記
モードレスで表示したところ、子ダイアログは最前面に出てきてくれたのですが、親ダイアログと一体化しているようで子ダイアログだけ移動などの操作ができません。更に子ダイアログをクリックすると、クリックした背後にある親ダイアログのタブやボタンが子ダイアログを突き抜けて表示されております。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gazette2

2017/11/28 06:52

親子関係の設定に間違いがあるとは思われますが、ソースがないので確かめる方法がないですね。
guest

回答1

0

通常、ダイアログボックスは

c++

1class CMyDlg : public CDialog 2{ 3public: 4 CString m_MyStr; 5 CMyDlg(CWnd *pParentWnd = NULL) : 6 CDialog("MYDLG", pParentWnd) {} 7protected: 8 virtual void OnOK(); 9};

の様に、CDialogを継承して作っていると思いますが、生成する際にpParentWndに親ウィンドウのポインター(通常はthis)を指定していますか?

親側では、

C++

1CMyDlg dlg(this); 2if(dlg.DoModal() == IDOK) { 3 MyMainStr = dlg.m_MyStr; 4}

こんな形で呼び出すことになります。
こうすれば、親の裏側に入ったりすることは無いはずです。

以下参照してください。
第11章 簡単なダイアログボックス

投稿2017/11/30 08:31

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問