- 締切済み
MFCダイアログボックスを最前面に表示
MFCでダイアログを表示するアプリを作成しようとしています。 そこでダイアログボックスを表示させたときに最前面に表示させる方法を教えていただきたいと思ってます。 ボタン押下でダイアログ表示させるのではなく、IPメッセンジャーのようにタスク常駐していてネットワーク上からのトリガーでダイアログを表示させようとしています。 ダイアログが表示されたときに、他のプログラムを起動している場合でも、クリック等をしても、他のウィンドウの下に隠れないようにしたいと思ってるのですが、可能でしょうか。 つまり、そのダイアログが表示されている間は何をしても最前面に表示させておきたいのです。 なにとぞよろしくお願いいたします。 補足が必要でしたら、おっしゃってください。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>つまり、そのダイアログが表示されている間は何をしても最前面に表示させておきたいのです。 うぎゃー、ごめんなさいm(..)m IPメッセンジャーみたいでタスクトレイに常駐って書いてあったから、ついタスクトレイのアイコンをクリックしてウィンドウを表示するときにアクティブにする方法を書いてしまいました。 本当は、SetWindowPos()でHWND_TOPMOSTを指定してください。 >別アプリも最前面にでる設定がされていたらどうなるのでしょうね? というパターンは、最前面ウィンドウを取り合う形になります。 あとからアクティブになったウィンドウの勝ちです。
- mk1234
- ベストアンサー率30% (20/65)
別アプリも最前面にでる設定がされていたらどうなるのでしょうね?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>バージョンはVS6.0SP5、OSはWin2000とXP両方です。 OSがそれですと、フォアグランドに行かずにタスクバー上で点滅するだけの場合があるので、 http://home.att.ne.jp/yellow/hide_n/programming/tips06.html この処理をOnInitDialogで実行してください。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
VisualStudioのバージョンとOSのバージョンは? VS6.0でしたら、リソースエディタでダイアログの プロパティの、その他のスタイルで、「フォアグランドに表示」を指定する
補足
早速ありがとうございます。 バージョンはVS6.0SP5、OSはWin2000とXP両方です。
補足
ありがとうございます。 どう説明すればいいかちょっと考えてしまってました。 試してみます。