Esempio n. 1
0
        /// <summary>
        /// 实现wpf无法响应点击消息的问题
        /// </summary>
        /// <param name="hwnd"></param>
        /// <param name="msg"></param>
        /// <param name="wParam"></param>
        /// <param name="lParam"></param>
        /// <param name="handled"></param>
        /// <returns></returns>
        IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if (msg == WM_LBUTTONDOWN)
            {
                if (mouseFirstLButtonDown == false) //不处理第一次操作
                {
                    mouseFirstLButtonDown = true;
                    return(IntPtr.Zero);
                }

                int x = (ushort)lParam.ToInt32();
                int y = (ushort)(lParam.ToInt32() >> 16) & 0xFFFF;
                chromeMain.GetBrowser().GetHost().SendMouseClickEvent(x / (int)dpiPointF.X, y / (int)dpiPointF.Y, MouseButtonType.Left, false, 1, CefEventFlags.None);
                handled = true;
            }
            if (msg == WM_LBUTTONUP)
            {
                if (mouseFirstLButtonUp == false) //不处理第一次操作
                {
                    mouseFirstLButtonUp = true;
                    return(IntPtr.Zero);
                }
                int x = (ushort)lParam.ToInt32();
                int y = (ushort)(lParam.ToInt32() >> 16) & 0xFFFF;
                chromeMain.GetBrowser().GetHost().SendMouseClickEvent(x / (int)dpiPointF.X, y / (int)dpiPointF.Y, MouseButtonType.Left, true, 1, CefEventFlags.None);
                handled = true;
            }
            if (msg == WM_KEYDOWN)
            {
                if (116 == wParam.ToInt32()) //(int)System.Windows.Forms.Keys.F5
                {
                    handled = true;
                }
            }
            if (msg == WM_KEYUP)
            {
                if (116 == wParam.ToInt32())
                {
                    chromeMain.Reload();
                    handled = true;
                }
            }

            return(IntPtr.Zero);
        }