• ベストアンサー

メッセージボックスの背景色

いつもお世話になってます。 VB6.0でメッセージボックスの背景を任意の色に変更する事は可能ですか? フォームの背景をデフォルトの色(&H8000000F&)と違う色(&H00FFC0C0&)にしているので、メッセージボックスも同じ色に合わせたいのです。 どうすればメッセージボックスの背景色を変更する事ができるのでしょう? 御存知の方、回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • souta_n
  • ベストアンサー率33% (79/234)
回答No.1

メッセージボックスみたいなフォームを任意に作って、表示させたいイベントでSHOWさせてみたらいかがでしょう。

lovelypooh
質問者

お礼

回答ありがとうございました。 メッセージボックスの背景色を変更したアプリやOCXの存在を聞いたことがあるので 簡単にできるのかと思ってました。 メッセージボックスはフォームから作ることにします。

その他の回答 (2)

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.3

やってできないことはない。 単純方法としては、画面のプロパティを操作してやりゃ、当然ながら色は変わる。 でもWindows自体を触るので却下として。。。 フックして、WM_PAINTなどの時に、独特の配色をしてやりゃ、できるはず。 実験はしていないが、フックしてからメッセージメッセージボックスを表示することになるため、フック関数部分をCreateThreadで、別スレットでの制御にしないと、基本的にシングルスレットVBでは落ちるように思える。 これは想像であって、もしかしたら別スレにしないでも、大丈夫かもしれない。 あまりにも一般的ではなさ過ぎるように思えるし、かなり面倒そう。 よって参考URLの締めと同様、オリジナルフォームを作った方がよさそう。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=384428
lovelypooh
質問者

お礼

回答ありがとうございました。 メッセージボックスの背景色を変更したアプリやOCXの存在を聞いたことがあるので 簡単にできるのかと思ってました。 メッセージボックスはフォームから作ることにします。

回答No.2

VBでのMessageBoxはシステムで表示されているので、色変えはできないはずです。 #1の方の仰る通り自作のMessageBoxをFormで作成して、Show 1(モーダル表示)させるのだ一番だと思います。

lovelypooh
質問者

お礼

回答ありがとうございました。 メッセージボックスの背景色を変更したアプリやOCXの存在を聞いたことがあるので 簡単にできるのかと思ってました。 メッセージボックスはフォームから作ることにします。

関連するQ&A

  • VAB:メッセージボックスの色について

    VBAのコードの中で、  MsgBox "めっせーじ" と打つとメッセージボックスが表示されますが、 この時表示されるメッセージボックスの、  ・タイトルバー?の色(XPのデフォルトは青か)  ・タイトル(Microsoft Excelと出ている)  ・背景色(デフォルトは灰色?) を指定することはできますか? Windowsの「画面のプロパティ」だと全てのウィンドウの色が変わってしまいますが、 このコードを実行した時に表示するメッセージボックスだけ変更、という操作は可能でしょうか。

  • VB.NET メッセージボックスが隠れてしまいます。

    VB.NETでIEを起動して、フォームの操作と連携して IEのページを自動で操作するプログラムを作っています。 IEでWEBページのリンクをクリックしてページを移動する ごとにURLをチェックして、設定に該当した場合は メッセージボックスを表示して、このページで良いですか? という確認をしたいのですが、メッセージボックスが アクティブにならずにタスクバーを押さないと表示されません。 リンクをクリックした後は SetWindowPos(IE.HWND, 1, 0, 0, 0, 0, &H1 Or &H2 Or &H10) を実行して、IEを後ろに消してフォームを出すことは出来たのですが、 IEのウィンドウのタスクバーが押された状態のままで メッセージボックスがアクティブな状態で最前面に出てくれません。 Me.Topmost = True でもフォームは出るのですが、 メッセージボックスはその後ろに隠れてしまいます。 メッセージボックスを最前面に出す方法があったら教えて頂きたいです。 よろしくお願い致します。

  • フォームを開いたときに、コンボボックスの背景色が

    フォームを開いたときに、コンボボックスの背景色が勝手に変わる どちらのコンボボックスも 背景色は、#FFFFFF なのに、 フォームビューにすると 一方は、白、一方は、フォームと同じ色になってしまいます。 #FFFFFFに設定しているのに、 フォームと同じ色になってしまった右のコンボボックスをクリックすると、 白に戻ります。 なぜ色が勝手に変わってしまうのでしょうか? アクセス2007です。 ご回答よろしくお願いします。

  • リストボックスの特定行の背景色

    いつもお世話になっております。 VB6を使っています。 リストボックスの特定の行の背景色を変えたいのですが、 何か方法はあるのでしょうか? どうかよろしくお願いいたします。

  • 条件に応じてコンボボックスの背景色を変えたいです

    4つのコンボボックスA,B,C,Dがあり A+B=C+D の時、4つのコンボボックスの背景色を変更したいです。 ただしA,Bの両方に何も入力されてない時は色は変更したくないです。 振替管理表というものを作っているのですが、休日出勤した日(A、B)と、振替に休んだ日(C,D)を監理したいです。 休出した日を振替消化した場合にコンボボックスの色を変更して、消化できたことがわかりやすくしたいです。 コンボボックスの値(振替の単位)は1(1日)と0.5(半日)があり、0.5が2つある時には1日として消化したいです。 VBAは修正した事はあるのですが、新規に作るということをした経験がなく困っています。 簡単なサンプルコードが欲しいですが、 参考になるページを紹介していただくだけでも良いのでよろしくお願いしますm(_ _)m

  • 条件に該当したテキストボックスの名前を

    はじめまして。 現在AccessでVBを書いているのですが少しわからない事が ありましたので質問させて下さい。 バージョンは2003です。 単票形式のフォームにて、既に作られているボタンを押すと あるテキストボックスの値が条件に該当する場合、テキストボックスの 色が黄色に変わるというVBが既に書かれています。 そのVBが実行された後、黄色に変わったテキストボックスだけの 名前をメッセージボックスに表示させたいのですが、 どのようなVBを書けばいいのでしょうか>< VB始めたばかりでまだよく理解できていないので ネットなどでいろいろ調べたのですがわからなくて… msgbox関数?を使えばいいのはわかるのですが。 良かったらご教授お願いします!

  • Accessテキストボックスの背景色の条件の書き方

    条件付き書式で、 テキストボックス0が9:00以上であれば背景を赤くする という設定をしています。 テキストボックス0が赤い表示になっており、 さらにテキストボックス1に゛無゛と入っていた場合、 「いいですか?」というメッセージボックスを出したいのですが、 色の指定の仕方がうまくいきません。 背景が赤くなっているとき、という条件はどのように書けばいいのでしょうか?

  • カーソルがあっても背景色を透明のままにしたい

    フォームの背景の色を変え、テキストボックスを置き、 背景スタイルを透明にして、既定地をテストとしました。 そしてそれをコピーしたすぐ下に貼りつけて、フォームビューにすると、 カーソルがテキストボックスにある場合、背景色が白になってしまいます。 フォーカスが離れると、色が透明になり、黄色になります。 色を変えたくないのですがどうすればいいですか? ちなみにアクセス2007です。

  • VB2005 コントロールの背景を透過

    フォームにバックグラウンドイメージを設定しているのですが その上にグループボックスやラベルを貼り付けたら、フォームのイメージが隠れてしまいます。 VB6はコントロールに背景を透過にするプロパティがあったので探してみたのですが、見当たりません。 おそらくVB2005でも簡単に透過設定できると思うのですが… グループボックスとラベルを透過に設定する簡単な方法はありますでしょうか? (コントロールの継承になってくる?) また、これはおそらく無理だと思うのですが ピクチャーボックスで表示されている画像の透過部分にも フォームの背景イメージを表示させる、ということは可能でしょうか? よろしくお願い致します。

  • メッセージボックスの表示位置について

    WindowsAPI(C言語)でメッセージボックスの表示位置を変更したいと思っています。 ダイアログボックスはSetWindowPosで変更できたのですが、メッセージボックスの表示位置が変更できずに困っています。 何か良いAPIや、実装方法などがありましたらご教授ください。 よろしくお願いします。

専門家に質問してみよう