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
  • 相关阅读:
    sizeof和strlen区别
    Reverse Words in a String
    删除字符串中重复的字符
    Reverse String
    数组中一个数字出现的次数超过了数组长度的一半,请找出这个数
    输出数组中大于等于左边所有数且小于等于右边所有数的元素
    java获取数据库里表的名字
    [转]C++编写Config类读取配置文件
    c# App.Config详解
    pitch yaw roll是什么
  • 原文地址:https://www.cnblogs.com/wangliuzheng/p/2918100.html
Copyright © 2011-2022 走看看