0

アプリケーションでshockwaveフラッシュ要素の組み込みの右クリックメニューを無効にしようとしましたが、機能しません。VBで無効にする方法はありますか?ありがとう!

4

2 に答える 2

1

マウスの右クリックイベントを無効にする必要があります。

public partial class Form1 : Form ,IMessageFilter // after the name space
{     

     private const int WM_LBUTTONDOWN = 0x0201;



    public Form1()
    {
        InitializeComponent();
        Application.AddMessageFilter(this);
        this.FormClosed += new FormClosedEventHandler(this.Form1_FormClosed);
    }
    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.RemoveMessageFilter(this);
    }
    public bool PreFilterMessage(ref Message m)
    {
         //Filter out WM_NCRBUTTONDOWN/UP/DBLCLK
        if (m.Msg == 0xA4 || m.Msg == 0xA5 || m.Msg == 0xA6) return true;
        // Filter out WM_RBUTTONDOWN/UP/DBLCLK
        if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true;
        return false;
    }
于 2013-05-31T08:55:23.053 に答える
0

これにより、RightClickDisabledShockWaveObjectを「4つの簡単なステップでのみ」使用できます。

「フォーム」にShockwaveFlashコントロールを追加します。

1.「NoRightClickFlashControl.vb」という名前の新しいクラスファイルを作成します

次のコードをNoRightClickFlashControl.vbに貼り付けます

Public Class NoRightClickFlashControl

Inherits AxShockwaveFlashObjects.AxShockwaveFlash
Private Const WM_RBUTTONDOWN As Integer = &H204

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Select Case m.Msg
        Case WM_RBUTTONDOWN
            ' Do nothing on right-click
            m.Result = New IntPtr(1)
            Return
    End Select
    MyBase.WndProc(m)
End Sub

End Class

2.フォームでShockwaveObjectの名前「AxShockwaveFlash1」を「NoRightClickFlashControl1」に変更します。

Form.Designer.vbファイルを開きます

3.次のように、 「Initialize」と「SuspendLayout」の 間のコードを変更します。

    Private Sub InitializeComponent()

'// Old is : Me.NoRightClickFlashControl1 = New AxShockwaveFlashObjects.AxShockwaveFlash()

    '// Change like this
    Me.NoRightClickFlashControl1 = New Your_Project_NameSpace.NoRightClickFlashControl

    Me.SuspendLayout()

次に、最後に、Form.Designer.vbの「EndClass」ファイルの近くで、次のように変更します

'// Old is : Friend WithEvents NoRightClickFlashControl1 As AxShockwaveFlashObjects.AxShockwaveFlash

  '// Change Like this :
  Friend WithEvents NoRightClickFlashControl1 As NoRightClickFlashControl

End Class '// the End Class is just o understand.

他のすべてのコーディングはShockwaveFlashObjectと同じです-ムービーのロード、再生

完了です

F5を押して実行します!楽しみ!!!

于 2014-11-09T17:18:09.327 に答える