zoukankan      html  css  js  c++  java
  • wpf 中AxShockwaveFlash重写以及屏蔽鼠标右键

    在wpf中需要用到flash播放swf或者图片,需要使用

    AxShockwaveFlashObjects.dll和ShockwaveFlashObjects.dll

    在项目中使用的时候遇到

    问题1.使用WindowsFormsHost总是置顶的问题,到目前为止没有很好的解决

    问题2.就是AxShockwaveFlash取消鼠标右键

    屏蔽掉flash右键方法:

    重写AxShockwaveFlash

     public partial class MyShockwaveFlash : AxShockwaveFlash
        {
            public event MouseEventHandler MouseRightDown;
            public delegate void MouseEventHandler(object sender, System.Windows.Forms.MouseEventArgs e);
            private const int WM_LBUTTONDOWN = 0x0201;
            private const int WM_RBUTTONDOWN = 0x0204;
    
            protected override void WndProc(ref Message m)
            {
                switch (m.Msg)
                {
                    case WM_RBUTTONDOWN:
                        Int16 x = (Int16)m.LParam;
                        Int16 y = (Int16)((int)m.LParam >> 16);
                        MouseRightDown(this, new System.Windows.Forms.MouseEventArgs(System.Windows.Forms.MouseButtons.Right, 1, x, y, 0));
                        break;
                }
                if (m.Msg == WM_RBUTTONDOWN)
                {
                    return;
                }
                base.WndProc(ref m);
            }
        }

    然后使用方法如下:

    private void MediaElementControl()
            {
                FlashPlayer = new MyShockwaveFlash();
                wfhFlash.Child = FlashPlayer;
                FlashPlayer.Movie = AppDomain.CurrentDomain.BaseDirectory + "main.swf";
                FlashPlayer.MouseRightDown += new MyShockwaveFlash.MouseEventHandler(FlashPlayer_MouseRightDown);
            }
    
            void FlashPlayer_MouseRightDown(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                //这里您可以加入自己的处理或者其他您想处理的代码//System.Windows.MessageBox.Show("asfasdfasdf");
                return;
            }

    最后问题2 顺利得以解决,但是对于问题1目前还没有找到很好的解决方法,哪位朋友如果有解决方法或者思路欢迎讨论交流或者留言均可,谢谢。

  • 相关阅读:
    Struts2(五)——核心拦截器
    Struts2(四)——页面相关内容
    Struts2(三)——数据在框架中的数据流转问题
    Python Day 1
    c++-STL:删除子串
    九度1165:字符串匹配
    九度1051:数字阶梯求和
    数据结构之二叉树基础三
    数据结构之二叉树基础二
    数据结构之二叉树基础一
  • 原文地址:https://www.cnblogs.com/ching2009/p/4896786.html
Copyright © 2011-2022 走看看