開発環境はWindowsXP & VB6(SP6)です。
フォーム(仮にForm1とする)のShowInTaskbarプロパティをFalseに設定すると、タスクバーに表示されなくなりますが、Form1からMsgboxを表示すると、Msgboxが閉じた時に、一瞬Form1がフォーカスを失い、すぐに戻ってくる感じになってしまいます。
Form1の裏側(もちろん別プロセス)にウィンドウがあった場合は、それらが一瞬アクティヴになる感じで格好悪いのですが、何か良い方法などあるのでしょうか?
かなり初歩的な質問かもしれませんが、よろしくお願いいたします。
APIのMessageBoxを試してみてください。
私の場合はうまくいきましたw
MessageBox [WinAPI Database for VB Programmer]
http://www.winapi-database.com/Window/Dialog/MessageBox.html
エンデバーさん、アドバイスありがとうございます。
APIのMessageBoxなんて、これまでは、あまりメリットを感じるシーンがなかったので、ほとんど使用したことないのですが、先ほどテストしてみたら、問題なくできました。
ただ、アプリケーションは複数あり、非常に多くのMsgboxがありますので、結構大変です(^^;
色々調べてみましたが、良い方法もないようなので、Messagebox使うしかなさそうです。
しかし、この現象ってVBのバグなのでしょうか?
試してはみませんが、CommonDialogなんかでも同様の症状が出そうな気がします。
なにはともあれ、ありがとうございました。
おかげさまで、時間さえ費やせば、解決はできそうです。
VBのバグなのか仕様なのかはわかりませんが、一つ一つ書き換えなくても、MsgboxとMessageBoxは機能が似ているので関数化して、あとは「Msgbox」を新しく作った関数の名前に置換するだけなので、結構早くできると思いますよ。
編集 削除