首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >右键单击AxShockwaveFlash elements,禁用VB.NET

右键单击AxShockwaveFlash elements,禁用VB.NET
EN

Stack Overflow用户
提问于 2013-03-17 04:20:53
回答 2查看 1.7K关注 0票数 0

我试图在我的应用程序中禁用shockwave flash元素的内置右键单击菜单,但它不起作用。有没有办法在VB中禁用它?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-31 16:55:23

它应该禁用鼠标右键单击事件:

代码语言:javascript
复制
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;
    }
票数 1
EN

Stack Overflow用户

发布于 2014-11-10 01:18:09

这可以给你一个禁用RightClick的ShockWaveObject“只有4个简单的步骤”

在你的“表单”中添加一个Shockwave Flash控件。

1.创建一个名为"NoRightClickFlashControl.vb"的新类文件

将下面的代码粘贴到NoRightClickFlashControl.vb中

代码语言:javascript
复制
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'之间更改代码,如下所示:

代码语言:javascript
复制
    Private Sub InitializeComponent()

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

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

    Me.SuspendLayout()

然后在"End “文件附近的Form.Designer.vb中-- 更改以下

代码语言:javascript
复制
'// 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相同-加载电影,播放

It is Done

按F5即可运行!尽情享受!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15454292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档