ダイアログをトップウィンドウに表示させるためには?

[戻る]
ララ 2002/06/18(火) 19:13:18
CFileDialogのダイアログをトップウィンドウに表示させるためにはどうしたら良いでし
ょう?現在、CFileDialogの派生クラスを設け、OnInitDialog関数内で
ModifyStyleEx(NULL, WS_EX_TOPMOST, SWP_NOSIZE | SWP_FRAMECHANGED | 
SWP_SHOWWINDOW | SWP_NOMOVE);
としているのですがうまいこといきません。どなたか良い方法をご存知でしたらご教授
ください。

環境:VC++6.0,WindowsXP,MFC

sugar 2002/06/18(火) 20:25:11
TOPMOSTの設定は、SetWindowPos()を利用した方がよいようです。

ララ 2002/06/19(水) 09:40:02
試しに
SetWindowPos(&wndTopMost, 0, 0, 100, 100, SWP_NOSIZE | SWP_SHOWWINDOW | 
SWP_NOMOVE);
と設定してダイアログを最上位に表示することはできませんでした。

dairygoods 2002/06/19(水) 11:08:37
CFileDialogは、実は、システムが表示するダイアログそのものではなく、
その中に埋め込まれた子ダイアログです。

なので、OnInitDialogにて
GetParent()->SetWindowPos(...);
とします。

ララ 2002/06/19(水) 13:55:49
[[解決]]
dairygoodsのおっしゃった通りにやりましたら成功しました。ありがとうございまし
た。

古いスレッドには追加発言できません。