VB6 フォームのShowInTaskbarプロパティ

解決


セロ  2008-03-19 15:15:56  No: 139337  IP: 192.*.*.*

開発環境はWindowsXP & VB6(SP6)です。

フォーム(仮にForm1とする)のShowInTaskbarプロパティをFalseに設定すると、タスクバーに表示されなくなりますが、Form1からMsgboxを表示すると、Msgboxが閉じた時に、一瞬Form1がフォーカスを失い、すぐに戻ってくる感じになってしまいます。
Form1の裏側(もちろん別プロセス)にウィンドウがあった場合は、それらが一瞬アクティヴになる感じで格好悪いのですが、何か良い方法などあるのでしょうか?

かなり初歩的な質問かもしれませんが、よろしくお願いいたします。

編集 削除
エンデバー  2008-03-19 20:08:58  No: 139338  IP: 192.*.*.*

APIのMessageBoxを試してみてください。
私の場合はうまくいきましたw

MessageBox [WinAPI Database for VB Programmer]
http://www.winapi-database.com/Window/Dialog/MessageBox.html

編集 削除
セロ  2008-03-20 01:35:47  No: 139339  IP: 192.*.*.*

エンデバーさん、アドバイスありがとうございます。
APIのMessageBoxなんて、これまでは、あまりメリットを感じるシーンがなかったので、ほとんど使用したことないのですが、先ほどテストしてみたら、問題なくできました。

ただ、アプリケーションは複数あり、非常に多くのMsgboxがありますので、結構大変です(^^;

色々調べてみましたが、良い方法もないようなので、Messagebox使うしかなさそうです。

しかし、この現象ってVBのバグなのでしょうか?
試してはみませんが、CommonDialogなんかでも同様の症状が出そうな気がします。

なにはともあれ、ありがとうございました。
おかげさまで、時間さえ費やせば、解決はできそうです。

編集 削除
エンデバー  2008-03-20 21:22:08  No: 139340  IP: 192.*.*.*

VBのバグなのか仕様なのかはわかりませんが、一つ一つ書き換えなくても、MsgboxとMessageBoxは機能が似ているので関数化して、あとは「Msgbox」を新しく作った関数の名前に置換するだけなので、結構早くできると思いますよ。

編集 削除