zoukankan      html  css  js  c++  java
  • 无边框窗体的移动(winform/wpf)

    WinForm
      引入命名空间
      using
    System.Runtime.InteropServices;
    无边框移动 [DllImport(
    "user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; private void Form_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); }
    WPF
    private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DragMove(); }
    上述的dragMove 如果实现不了的话,wpf可以使用以下的方式实现,
    通过以上的方法也能过够实现
    加入命名空间:
    using System.Runtime.InteropServices;
    using System.Windows.Interop;
    
    namespace wintest
    {
        
            [DllImport("User32.dll")]
            public static extern bool ReleaseCapture();
            [DllImport("User32.dll")]
            public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
            public const int WM_SYSCOMMAND = 0x0112;
            public const int SC_MOVE = 0xF010;
            public const int HTCAPTION = 0x0002;
        
    
            private void Window_MouseDown(object sender, MouseButtonEventArgs e)
            {
                ReleaseCapture();
                WindowInteropHelper wihHandle = new WindowInteropHelper(this);// 获得该window的句柄
                SendMessage(wihHandle.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
            }
    
    
    
    
    
    wangliuzheng1990@126.com
  • 相关阅读:
    OAuth2.0协议流程
    记多个微服务同时被kill分析
    记一次调用API遇到的问题
    win10安装mysql遇到的坑
    nagios
    rmp安装mysql5.6
    桥接模式-xshell连接虚拟机
    VMWare虚拟机-网络适配器
    ***时间目录***
    docker常用命令
  • 原文地址:https://www.cnblogs.com/wangliuzheng/p/2918100.html
Copyright © 2011-2022 走看看