我试图在我的应用程序中禁用shockwave flash元素的内置右键单击菜单,但它不起作用。有没有办法在VB中禁用它?谢谢!
发布于 2013-05-31 16:55:23
它应该禁用鼠标右键单击事件:
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;
}发布于 2014-11-10 01:18:09
这可以给你一个禁用RightClick的ShockWaveObject“只有4个简单的步骤”
在你的“表单”中添加一个Shockwave Flash控件。
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 Class2.在表单中将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()然后在"End “文件附近的Form.Designer.vb中-- 更改以下:
'// 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即可运行!尽情享受!
https://stackoverflow.com/questions/15454292
复制相似问题