• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# WM类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中WM的典型用法代码示例。如果您正苦于以下问题:C# WM类的具体用法?C# WM怎么用?C# WM使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



WM类属于命名空间,在下文中一共展示了WM类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: KeyboardHookProc

        private static IntPtr KeyboardHookProc(int nCode, WM wParam, IntPtr lParam)
        {
            bool handled = false;

              if (nCode >= 0)
              {
            KeyboardHookStruct kbHookStruct = (KeyboardHookStruct)
              Marshal.PtrToStructure(lParam, typeof(KeyboardHookStruct));
            Keys keyData = (Keys)kbHookStruct.vkCode;
            KeyEventArgs e = new KeyEventArgs(keyData);

            if (s_KeyDown != null && (wParam == WM.KEYDOWN ||
            wParam == WM.SYSKEYDOWN))
            {
              s_KeyDown.Invoke(null, e);
              handled = e.Handled;
            }

            if (s_KeyUp != null && (wParam == WM.KEYUP ||
            wParam == WM.SYSKEYUP))
            {
              s_KeyUp.Invoke(null, e);
              handled = e.Handled;
            }

            if (handled)
            {
              return new IntPtr(-1);
            }
              }

              return CallNextHookEx(s_KeyboardHookHandle, nCode, wParam, lParam);
        }
开发者ID:shurizzle,项目名称:Scroto,代码行数:33,代码来源:Hooker.Callbacks.cs


示例2: KeyDataEventArgs

 /// <summary>
 ///
 /// </summary>
 /// <param name="keyMessage"></param>
 /// <param name="keyCode"></param>
 /// <param name="scanCode"></param>
 /// <param name="timeStamp"></param>
 public KeyDataEventArgs(WM keyMessage, int keyCode, int scanCode, int timeStamp)
 {
     KeyMessage = keyMessage;
     KeyCode = keyCode;
     ScanCode = scanCode;
     TimeStamp = timeStamp;
 }
开发者ID:usausa,项目名称:Smart-Net-CE,代码行数:14,代码来源:KeyDataEventArgs.cs


示例3: OnKey

    private static int OnKey(HC nCode, WM wParam, IntPtr lParam)
    {
        bool is_key = (wParam == WM.KEYDOWN || wParam == WM.SYSKEYDOWN
                        || wParam == WM.KEYUP || wParam == WM.SYSKEYUP);

        if (nCode == HC.ACTION && is_key)
        {
            // Retrieve key event data from native structure
            var data = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam,
                                                      typeof(KBDLLHOOKSTRUCT));
            bool is_injected = (data.flags & LLKHF.INJECTED) != 0;

            Log.Debug("{0}: OnKey(HC.{1}, WM.{2}, [vk:0x{3:X02} sc:0x{4:X02} flags:{5}])",
                      is_injected ? "Ignored Injected Event" : "Event",
                      nCode, wParam, (int)data.vk, (int)data.sc, data.flags);

            if (!is_injected)
            {
                if (Composer.OnKey(wParam, data.vk, data.sc, data.flags))
                {
                    // Do not process further: that key was for us.
                    return -1;
                }
            }
        }
        else
        {
            Log.Debug("Ignored Event: OnKey({0}, {1})", nCode, wParam);
        }

        return NativeMethods.CallNextHookEx(m_hook, nCode, wParam, lParam);
    }
开发者ID:DarkDare,项目名称:wincompose,代码行数:32,代码来源:KeyboardHook.cs


示例4: OnKeyHook

 bool OnKeyHook(int code, WM wParam, KBDLLHOOKSTRUCT lParam, Hooker hooker)
 {
     if (lParam.vkCode ==  44 && wParam == WM.KEYUP)
     {
         takeScreenshot();
     }
     return false;
 }
开发者ID:furaga,项目名称:InstantScreenCapture,代码行数:8,代码来源:Form1.cs


示例5: OnKey

    /// <summary>
    /// Get input from the keyboard hook; return true if the key was handled
    /// and needs to be removed from the input chain.
    /// </summary>
    public static bool OnKey(WM ev, VK vk, SC sc, LLKHF flags)
    {
        // Remember when the user touched a key for the last time
        m_last_key_time = DateTime.Now;

        // Do nothing if we are disabled
        if (m_disabled)
        {
            return false;
        }

        int dead_key = SaveDeadKey();
        bool ret = OnKeyInternal(ev, vk, sc, flags);
        RestoreDeadKey(dead_key);

        return ret;
    }
开发者ID:carter-lavering,项目名称:wincompose,代码行数:21,代码来源:Composer.cs


示例6: OnKey

        private static int OnKey(HC nCode, WM wParam, IntPtr lParam)
        {
            if (nCode == HC.ACTION)
            {
            // Retrieve event data from native structure
            var data = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam,
                                                      typeof(KBDLLHOOKSTRUCT));

            bool is_key = (wParam == WM.KEYDOWN || wParam == WM.SYSKEYDOWN
                            || wParam == WM.KEYUP || wParam == WM.SYSKEYUP);
            bool is_injected = (data.flags & LLKHF.INJECTED) != 0;

            if (is_key && !is_injected)
            {
                if (Composer.OnKey(wParam, data.vk, data.sc, data.flags))
                {
                    // Do not process further: that key was for us.
                    return -1;
                }
            }
            }

            return NativeMethods.CallNextHookEx(m_hook, nCode, wParam, lParam);
        }
开发者ID:modulexcite,项目名称:wincompose,代码行数:24,代码来源:KeyboardHook.cs


示例7: _ChangeWindowMessageFilterEx

 private static extern bool _ChangeWindowMessageFilterEx(IntPtr hwnd, WM message, MSGFLT action, [In, Out, Optional] ref CHANGEFILTERSTRUCT pChangeFilterStruct);
开发者ID:AlertProject,项目名称:Text-processing-bundle,代码行数:1,代码来源:NativeMethods.cs


示例8: SendMessage

 public static extern IntPtr SendMessage(IntPtr hWnd, WM Msg, IntPtr wParam, IntPtr lParam);
开发者ID:AlertProject,项目名称:Text-processing-bundle,代码行数:1,代码来源:NativeMethods.cs


示例9: DwmDefWindowProc

 public static extern bool DwmDefWindowProc(IntPtr hwnd, WM msg, IntPtr wParam, IntPtr lParam, out IntPtr plResult);
开发者ID:AlertProject,项目名称:Text-processing-bundle,代码行数:1,代码来源:NativeMethods.cs


示例10: ChangeWindowMessageFilterEx

        public static HRESULT ChangeWindowMessageFilterEx(IntPtr hwnd, WM message, MSGFLT action, out MSGFLTINFO filterInfo)
        {
            filterInfo = MSGFLTINFO.NONE;

            bool ret;

            // This origins of this API were added for Vista.  The Ex version was added for Windows 7.
            // If we're not on either, then this message filter isolation doesn't exist.
            if (!Utility.IsOSVistaOrNewer)
            {
                return HRESULT.S_FALSE;
            }

            // If we're on Vista rather than Win7 then we can't use the Ex version of this function.
            // The Ex version is preferred if possible because this results in process-wide modifications of the filter
            // and is deprecated as of Win7.
            if (!Utility.IsOSWindows7OrNewer)
            {
                // Note that the Win7 MSGFLT_ALLOW/DISALLOW enum values map to the Vista MSGFLT_ADD/REMOVE
                ret = _ChangeWindowMessageFilter(message, action);
                if (!ret)
                {
                    return (HRESULT)Win32Error.GetLastError();
                }
                return HRESULT.S_OK;
            }

            var filterstruct = new CHANGEFILTERSTRUCT { cbSize = (uint)Marshal.SizeOf(typeof(CHANGEFILTERSTRUCT)) };
            ret = _ChangeWindowMessageFilterEx(hwnd, message, action, ref filterstruct);
            if (!ret)
            {
                return (HRESULT)Win32Error.GetLastError();
            }

            filterInfo = filterstruct.ExtStatus;
            return HRESULT.S_OK;
        }
开发者ID:AlertProject,项目名称:Text-processing-bundle,代码行数:37,代码来源:NativeMethods.cs


示例11: _WndProc

        private static IntPtr _WndProc(IntPtr hwnd, WM msg, IntPtr wParam, IntPtr lParam)
        {
            var ret = IntPtr.Zero;
            MessageWindow hwndWrapper = null;

            if (msg == WM.CREATE)
            {
                var createStruct = (CREATESTRUCT)Marshal.PtrToStructure(lParam, typeof(CREATESTRUCT));
                var gcHandle = GCHandle.FromIntPtr(createStruct.lpCreateParams);
                hwndWrapper = (MessageWindow)gcHandle.Target;
                SWindowLookup.Add(hwnd, hwndWrapper);
            }
            else
            {
                if (!SWindowLookup.TryGetValue(hwnd, out hwndWrapper))
                {
                    return NativeMethods.DefWindowProc(hwnd, msg, wParam, lParam);
                }
            }
            Assert.IsNotNull(hwndWrapper);

            var callback = hwndWrapper._wndProcCallback;
            if (callback != null)
            {
                ret = callback(hwnd, msg, wParam, lParam);
            }
            else
            {
                ret = NativeMethods.DefWindowProc(hwnd, msg, wParam, lParam);
            }

            if (msg != WM.NCDESTROY) return ret;

            hwndWrapper._Dispose(true, true);
            GC.SuppressFinalize(hwndWrapper);

            return ret;
        }
开发者ID:LionFree,项目名称:Cush,代码行数:38,代码来源:MessageWindow.cs


示例12: SendMessage

 public static extern int SendMessage(IntPtr hWnd, WM Msg, int wParam, int lParam);
开发者ID:0xwas,项目名称:LiveSplit.Video,代码行数:1,代码来源:GDI32.cs


示例13: _HandleNCCalcSize

        private IntPtr _HandleNCCalcSize(WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled)
        {
            // lParam is an [in, out] that can be either a RECT* (wParam == FALSE) or an NCCALCSIZE_PARAMS*.
            // Since the first field of NCCALCSIZE_PARAMS is a RECT and is the only field we care about
            // we can unconditionally treat it as a RECT.

            // Since we always want the client size to equal the window size, we can unconditionally handle it
            // without having to modify the parameters.

            handled = true;
            return new IntPtr((int)WVR.REDRAW);
        }
开发者ID:JeremyDurnell,项目名称:ChromeTabs,代码行数:12,代码来源:WindowChromeWorker.cs


示例14: _HandleNCActivate

        private IntPtr _HandleNCActivate(WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled)
        {
            // Despite MSDN's documentation of lParam not being used,
            // calling DefWindowProc with lParam set to -1 causes Windows not to draw over the caption.

            // Directly call DefWindowProc with a custom parameter
            // which bypasses any other handling of the message.
            IntPtr lRet = NativeMethods.DefWindowProc(_hwnd, WM.NCACTIVATE, wParam, new IntPtr(-1));
            handled = true;
            return lRet;
        }
开发者ID:JeremyDurnell,项目名称:ChromeTabs,代码行数:11,代码来源:WindowChromeWorker.cs


示例15: _HandleMove

        private IntPtr _HandleMove(WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled)
        {
            // This is only intercepted to deal with bugs in Window in .Net 3.5 and below.
            Assert.IsTrue(Utility.IsPresentationFrameworkVersionLessThan4);

            if (_isUserResizing)
            {
                _hasUserMovedWindow = true;
            }

            handled = false;
            return IntPtr.Zero;
        }
开发者ID:JeremyDurnell,项目名称:ChromeTabs,代码行数:13,代码来源:WindowChromeWorker.cs


示例16: WndProc

        private IntPtr WndProc(HWND hwnd, WM msg, IntPtr wParam, IntPtr lParam, IntPtr id, IntPtr data)
        {
            IntPtr retval = IntPtr.Zero;

            try
            {
                retval = WndProcOverride(hwnd, msg, wParam, lParam, id, data);
            }
            finally
            {
                if (_hwnd != HWND.NULL)
                {
                    Debug.Assert(_hwnd == hwnd);

                    if (msg == WM.NCDESTROY)
                    {
                        Dispose();
                    }
                    else if (msg == _disposeMessage && wParam == _wndprocPtr)
                    {
                        DisposeHelper(lParam == IntPtr.Zero ? false : true);
                    }
                }
            }

            return retval;
        }
开发者ID:Trezamere,项目名称:Practices,代码行数:27,代码来源:WindowSubclass.cs


示例17: _HandleNCHitTest

        private IntPtr _HandleNCHitTest(WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled)
        {
            IntPtr lRet = IntPtr.Zero;
            handled = false;

            // Give DWM a chance at this first.
            if (Utility.IsOSVistaOrNewer && _chromeInfo.GlassFrameThickness != default(Thickness) && _isGlassEnabled)
            {
                // If we're on Vista, give the DWM a chance to handle the message first.
                handled = NativeMethods.DwmDefWindowProc(_hwnd, uMsg, wParam, lParam, out lRet);
            }

            // Handle letting the system know if we consider the mouse to be in our effective non-client area.
            // If DWM already handled this by way of DwmDefWindowProc, then respect their call.
            if (IntPtr.Zero == lRet)
            {
                var mousePosScreen = new Point(Utility.GET_X_LPARAM(lParam), Utility.GET_Y_LPARAM(lParam));
                Rect windowPosition = _GetWindowRect();

                HT ht = _HitTestNca(
                    DpiHelper.DeviceRectToLogical(windowPosition),
                    DpiHelper.DevicePixelsToLogical(mousePosScreen));

                // Don't blindly respect HTCAPTION.
                // We want UIElements in the caption area to be actionable so run through a hittest first.
                if (ht != HT.CLIENT)
                {
                    Point mousePosWindow = mousePosScreen;
                    mousePosWindow.Offset(-windowPosition.X, -windowPosition.Y);
                    mousePosWindow = DpiHelper.DevicePixelsToLogical(mousePosWindow);
                    IInputElement inputElement = _window.InputHitTest(mousePosWindow);
                    if (inputElement != null && WindowChrome.GetIsHitTestVisibleInChrome(inputElement))
                    {
                        ht = HT.CLIENT;
                    }
                }
                handled = true;
                lRet = new IntPtr((int)ht);
            }
            return lRet;
        }
开发者ID:JeremyDurnell,项目名称:ChromeTabs,代码行数:41,代码来源:WindowChromeWorker.cs


示例18: _WndProc

        private IntPtr _WndProc(IntPtr hwnd, WM msg, IntPtr wParam, IntPtr lParam)
        {
            // Don't do this if called within the SystemParameters2 constructor
            if (_UpdateTable != null)
            {
                List<_SystemMetricUpdate> handlers;
                if (_UpdateTable.TryGetValue(msg, out handlers))
                {
                    Assert.IsNotNull(handlers);
                    foreach (var handler in handlers)
                    {
                        handler(wParam, lParam);
                    }
                }
            }

            return NativeMethods.DefWindowProc(hwnd, msg, wParam, lParam);
        }
开发者ID:gjhwssg,项目名称:MahApps.Metro,代码行数:18,代码来源:SystemParameters2.cs


示例19: _HandleNCRButtonUp

 private IntPtr _HandleNCRButtonUp(WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled)
 {
     // Emulate the system behavior of clicking the right mouse button over the caption area
     // to bring up the system menu.
     if (HT.CAPTION == (HT)wParam.ToInt32())
     {
         if (_window.ContextMenu != null)
         {
             _window.ContextMenu.Placement = PlacementMode.MousePoint;
             _window.ContextMenu.IsOpen = true;
         }
         else if (WindowChrome.GetWindowChrome(_window).ShowSystemMenu)
             SystemCommands.ShowSystemMenuPhysicalCoordinates(_window, new Point(Utility.GET_X_LPARAM(lParam), Utility.GET_Y_LPARAM(lParam)));
     }
     handled = false;
     return IntPtr.Zero;
 }
开发者ID:JeremyDurnell,项目名称:ChromeTabs,代码行数:17,代码来源:WindowChromeWorker.cs


示例20: SHChangeNotifyRegister

 public static extern uint SHChangeNotifyRegister(IntPtr hwnd, SHCNRF fSources, SHCNE fEvents, WM wMsg, int cEntries, [MarshalAs(UnmanagedType.LPArray)] SHChangeNotifyEntry[] pfsne);
开发者ID:shankithegreat,项目名称:commanderdotnet,代码行数:1,代码来源:NativeMethods.cs



注:本文中的WM类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# WPos类代码示例发布时间:2022-05-24
下一篇:
C# WINDOWPLACEMENT类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap