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目前还没有找到很好的解决方法,哪位朋友如果有解决方法或者思路欢迎讨论交流或者留言均可,谢谢。

  • 相关阅读:
    xshell不能输入中文,显示为??
    ansible-2.1.0.0_module
    ansible
    解决ssh连接问题2
    Java Socket网络编程Server端详解
    Java Socket网络编程Client端详解
    Spring4.* 中整合 Hibernate
    自定义规则,对List<Map<String,Object>> List<Object>进行排序
    自定义注解和注解的相关使用
    枚举类型的相关解析
  • 原文地址:https://www.cnblogs.com/ching2009/p/4896786.html
Copyright © 2011-2022 走看看