c#窗体加入flash教程急完美屏蔽鼠标右键

1.选择“工具箱”,单击鼠标右键,在弹出的快捷菜单中选择“选择项”。 2.弹出“选择工具箱项”对话框,选择“COM组件”选项卡。 3.在COM组件列表,单击[浏览]按钮,在对话框中选择"C:\Windows\System32\Macromed\Flash\Flash10h.ocx"。(版本可能有细微差别) 在工具箱的容器面板里有个MacroMedia Flash Factory Object 而且自动添加了引用AxShockwaveFlashObjects, ShockwaveFlashObjects 如果工具箱中已经有了,可以删除重新添加,以便自动添加引用。 在放入窗体中时报错“未能导入ActiveX 控件。请确保它已正确注册”. 所以手动添加如下代码: ### 如何在C#窗体中嵌入Flash并屏蔽鼠标右键 在早期的软件开发过程中,嵌入Flash动画是一项常见的需求。对于使用C#进行Windows Forms应用开发的开发者来说,将Flash集成到应用程序中是一种增强用户体验的有效方式。本文将详细介绍如何在C#的Windows Forms应用程序中嵌入Flash,并实现屏蔽鼠标右键的功能。 #### 嵌入Flash的基本步骤 1. **添加Flash ActiveX控件** - 打开Visual Studio中的项目。 - 在工具箱中右键点击,选择“选择项”。 - 弹出的对话框中选择“COM组件”选项卡。 - 浏览并找到Flash的ActiveX控件(例如:`C:\Windows\System32\Macromed\Flash\Flash10h.ocx`),不同版本的Flash可能会有所不同,请根据实际情况调整路径。 - 添加完成后,工具箱中会出现一个名为“MacroMedia Flash Factory Object”的控件。 2. **处理控件引用问题** - 如果在工具箱中添加控件时遇到“未能导入ActiveX控件”的错误,可能是控件未被正确注册。 - 解决方法是手动添加必要的引用,如`AxShockwaveFlashObjects`和`ShockwaveFlashObjects`。 - 删除已经存在的控件,然后重新按照上述步骤添加。 3. **编写代码加载Flash** - 在Form1.Designer.cs文件中添加以下代码: ```csharp private AxShockwaveFlashObjects.AxShockwaveFlash FlashBox; ``` - 在`InitializeComponent`方法中初始化Flash控件: ```csharp this.FlashBox = new AxShockwaveFlashObjects.AxShockwaveFlash(); this.Controls.Add(this.FlashBox); ``` - 在Form的`Load`事件中加载Flash文件: ```csharp private void Form1_Load(object sender, EventArgs e) { string appPath = Application.StartupPath; string swfPath = Path.Combine(appPath, "a.swf"); FlashBox.Movie = swfPath; FlashBox.SAlign = 1; // 设置对齐方式 FlashBox.ScaleMode = 2; // 设置缩放模式 FlashBox.Play(); // 开始播放Flash } ``` #### 屏蔽鼠标右键功能 为了实现屏蔽鼠标右键的功能,我们需要通过自定义窗口过程来拦截鼠标右键点击事件。具体实现步骤如下: 1. **创建自定义窗口过程** - 在Form1.Designer.cs文件中添加以下代码: ```csharp private AxShockwaveFlashObjects.AxShockwaveFlash FlashBox2; private WndProcDelegate Wpr; private WndProcDelegate OldWndProc; public delegate IntPtr WndProcDelegate(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam, ref bool handled); protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); Wpr = new WndProcDelegate(FlashWndProc); OldWndProc = (WndProcDelegate)SetWindowLong(FlashBox2.Handle, GWL_WNDPROC, Wpr); } private IntPtr FlashWndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == WM_RBUTTONDOWN) { handled = true; // 拦截鼠标右键点击事件 return IntPtr.Zero; } return OldWndProc(hWnd, msg, wParam, lParam, ref handled); } ``` 2. **设置Flash文件路径** - 同样在Form1.Load事件中设置Flash文件路径: ```csharp private void Form1_Load(object sender, EventArgs e) { string appPath1 = Application.StartupPath; string swfPath1 = Path.Combine(appPath1, "b.swf"); FlashBox2.Movie = swfPath1; FlashBox2.Play(); } ``` 以上步骤详细介绍了如何在C# Windows Forms应用程序中嵌入Flash并实现屏蔽鼠标右键的功能。这些技术在早期的应用程序开发中非常有用,但随着技术的发展,Flash逐渐被淘汰,现在更推荐使用HTML5等现代技术来实现类似的需求。



















2010-12-20 09:07
1.选择“工具箱”,单击鼠标右键,在弹出的快捷菜单中选择“选择项”。
2.弹出“选择工具箱项”对话框,选择“COM组件”选项卡。
3.在COM组件列表,单击[浏览]按钮,在对话框中选择"C:\Windows\System32\Macromed\Flash\Flash10h.ocx"。(版本可能有细微差别)
在工具箱的容器面板里有个MacroMedia Flash Factory Object
而且自动添加了引用AxShockwaveFlashObjects, ShockwaveFlashObjects
如果工具箱中已经有了,可以删除重新添加,以便自动添加引用。
在放入窗体中时报错“未能导入ActiveX 控件。请确保它已正确注册”.
所以手动添加如下代码:
C# code
(1) 在Form1.Designer.cs中的最下方与其他定义控件语句放一块定义:
private AxShockwaveFlashObjects.AxShockwaveFlash FlashBox;
(2) 在在Form1.Designer.cs中private void InitializeComponent()方法中添加2条语句:
this.FlashBox = new AxShockwaveFlashObjects.AxShockwaveFlash();
this.Controls.Add(this.FlashBox);
接下来就可以在Form [设计]中可视化编程了,以上语句也会自动规格化。
在加载Flash时可以在窗体的Load函数中添加:
FlashBox.Movie = Application.StartupPath + "\\a.swf";
这里的Application.StartupPath一般为程序的Debug文件夹,这时需要把a.swf放入该文件夹。
按以上做后,会发现Flash加载成功,但大小和缩放均不合适,还需要设置两个属性:

- 一个叫LB的SA2013-02-06参考了一下,思路还是不错的!
- BuXiaoJing2014-05-12正是所需,触摸屏上需要用到这个!
- bloong2013-12-28正好用到 谢谢楼主
- 东之尧2018-10-07感谢分享。

- 粉丝: 86
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于大语言模型的专属知识库
- Java高并发秒杀系统,基于SSM + redis实现.zip
- java基于redis的布隆过滤器实现.zip
- Java基于Redis编写的抽奖程序,奖品分批投放,同时满足给出的奖品抽中的概率和数量.zip
- Java基于Netty,Protostuff和Zookeeper实现分布式RPC框架.zip
- Java基于Redis实现排行榜.zip
- java基于Springboot框架开发的酒店管理系统.zip
- 物联网数据挖掘分析系统
- Java基于SSM教务选课成绩管理系统设计毕业源码案例设计.zip
- Java-基于百度API的图片文字识别(支持中文,英文和中英文混合).zip
- Java基于注解和反射导入导出Excel.zip
- java开发的基于kafka、xlog的web日志实时分析storm topology。(1).zip
- java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构
- java基于ssm旅游网站设计.zip
- java开发的基于kafka、xlog的web日志实时分析storm topology。.zip
- Java课设_Java Web 基于JSP+Servlet的论坛系统.zip


