MsgBoxの音を出さないようにするには?

解決


だい2  2004-09-20 15:16:32  No: 85653  IP: [192.*.*.*]

いつもお世話になっています。
MsgBoxが表示されるときに「ポン」とか「ピン」
とかの音が出ますが、これを出さないようにはできますか?
ちなみに、スピーカはそのままで・・・。

ご存知出来たら教えてください。お願いします。
VB6.0です。

編集 削除
魔界の仮面弁士  2004-09-20 22:57:09  No: 85654  IP: [192.*.*.*]

MsgBox関数の代わりに、ご自分でモーダルなフォームを
表示させるようにすれば、無音でメッセージを表示できます。
標準モジュールに「MsgBox」という名の Public Function を
配置するようにすれば、呼び出し側のプログラムの修正も不要かと。

ただ、ほかのアプリケーションの場合でも、メッセージ表示時には、
コントロールパネルで設定された音が鳴りますよね。
それがWindowsの標準的な仕様なのですから、自身のアプリだけ
動作を変える必要は無い気がしますけれど……。

# 昔は、MsgBox表示に、規定の警告音を出す方法が質問に上がって
# いたのですが、今は逆に、音を出さない方法が質問されるんですね。(^^;)

編集 削除
だい2  2004-09-25 15:59:14  No: 85655  IP: [192.*.*.*]

魔界の仮面弁士様ありがとうございます。
>動作を変える必要は無い気がしますけれど……。
そのとうりですが、ちょいとわけありで・・・。

話は変わりますが、モーダルにするには、どのように
すればよいのでしょうか?
実はMSGBOXを使っているのもモーダル状態にしたいが
為だったりします・・・。
モーダル状態にしておいて、数秒後に自力で復活
するようにできれば、最高なのですが・・・。
無理でしょうか?

よろしくお願いします。

編集 削除
とろ  2004-09-25 16:07:36  No: 85656  IP: [192.*.*.*]

フォームのShowメソッドの引数でモーダルが指定できます。

>モーダル状態にしておいて、数秒後に自力で復活
>するようにできれば、最高なのですが・・・。

表示するダイアログのLoadイベントでタイマーを起動して
そこで自身をUnloadすれば希望の動作になりますね。

編集 削除
魔界の仮面弁士  2004-09-25 20:53:26  No: 85657  IP: [192.*.*.*]

> MsgBox関数の代わりに、ご自分でモーダルなフォームを
> 表示させるようにすれば、無音でメッセージを表示できます。

以下、サンプルです。

'==== 標準モジュール ====
Option Explicit
Public Function MsgBox( _
    ByVal Prompt As String, _
    Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, _
    Optional ByVal Title As String, _
    Optional ByVal HelpFile As String, _
    Optional ByVal Context As Long) As VbMsgBoxResult

    MsgBox = Form2.MsgBox(Prompt)
End Function


'==== Form2 ====
Option Explicit
Private Result As VbMsgBoxResult
'アイコンやボタンの指定は省略しています。
'必要に応じて、コードを書き加えて見てください。
Friend Function MsgBox(ByVal Prompt As String) As VbMsgBoxResult
    Result = vbCancel
    Load Me
    Me.Label1.Caption = Prompt
    Me.Show vbModal
    MsgBox = Result
End Function
Private Sub Command1_Click(Index As Integer)
    If Index = 0 Then
        Result = vbOK
    Else
        Result = vbCancel
    End If
    Unload Me
End Sub

編集 削除
だい2  2004-09-27 10:15:30  No: 85658  IP: [192.*.*.*]

とろ様、魔界の仮面弁士様
大変ありがとうございました。
解決いたしました。
勉強不足ですみませんでした。
これからも、よろしくお願いいたします。
m(_ _)m

編集 削除