SetForegroundWindowが上手く機能しません。

[戻る]
クリリン 2002/04/25(木) 12:57:36
いつも、お世話になっています。
環境は Win2000(SP2), VC6(SP5), MFC です。

機能説明
・3つのダイアログがあります。
 (データ入力(参照)…モード切替があります。、検索条件入力、検索結果一覧)
・コマンドラインを使って、最初に表示するダイアログを切り替えています。
 (データ入力か検索条件入力)
・流れは二通りあります。
 1.データ入力->検索条件入力->検索結果一覧->データ入力(参照)
 2.検索条件入力->検索結果一覧->データ入力(参照)
・検索結果一覧はモードレスです。検索条件入力からクリエイトされ、検索条件入力のダイアロ
グが消えたらいっしょに消します。
・検索結果一覧のコマンドに検索条件入力をアクティブにする機能があります。

質問ですが、基本的な流れは問題ありません。ただ、2の場合、検索条件入力がアクティブには
なっているのですが、「前景」ならず、1の場合は正常に「前景」になります。
デバッグで「SetForegroundWindow」の戻り値を調べたら「TRUE」になっていました。
どうしたら、「前景」状態になるのでしょうか?

ちなみに、検索結果一覧を表示する時に検索条件入力のウィンドウハンドルを渡しています。

みなさま、よろしくお願いします。

クリリン 2002/04/25(木) 13:25:54
[[解決]]
自己レスです。
出来ました。

原因は、Create(IDD_DIALOG1, NULL)の「NULL」に問題がありました。
Createをヘルプで見ると、
「引数が、NULL のときは、作られるダイアログの親ウィンドウは、メイン アプリケーション 
ウィンドウになります。」
と書いて有りました。
解決方法は、
Create(IDD_DIALOG1, GetForegroundWindow())
です。

お騒がせしました。

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