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

解決


セロ  2008-03-20 00:15:56  No: 139337

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

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

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


エンデバー  2008-03-20 05:08:58  No: 139338

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

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


セロ  2008-03-20 10:35:47  No: 139339

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

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

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

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

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


エンデバー  2008-03-21 06:22:08  No: 139340

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加