zoukankan      html  css  js  c++  java
  • C#无边框窗体移动的三种方法

    1. 重写WndProc

    protected override void WndProc(ref Message m)
    {       
            const int WM_NCHITTEST = 0x84;
            const int HTCLIENT = 0x01;
            const int HTCAPTION = 0x02;
             if (m.Msg == WM_NCHITTEST)
            {
                    this.DefWndProc(ref m);
                    if (m.Result.ToInt32() == HTCLIENT)
                        m.Result = new IntPtr(HTCAPTION);
                    else
                        base.WndProc(ref m);
            }
            else
            {
                    base.WndProc(ref m);
            }
    }
    View Code

    2.创建消息

    private const int WM_NCLBUTTONDOWN = 0x00A1;
    private const int WM_NCHITTEST = 0x84;
    private const int HT_CAPTION = 0x2;
    private const int HT_CLIENT = 0x1;
    
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        //this.Capture = false;
        pictureBox1.Capture = false;
        Message msg = Message.Create(Handle, WM_NCLBUTTONDOWN, (IntPtr)HT_CAPTION, IntPtr.Zero);
        WndProc(ref   msg);   
    } 
    View Code

    3.调用API代码

    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;
    
    
       //在窗体的_MouseDown中加入如下代码:
    如:
    private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    ReleaseCapture();
    SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
    }
    View Code
    慎于行,敏于思!GGGGGG
  • 相关阅读:
    MySQL 通过多个示例学习索引
    git reset的用法
    git rebase的用法
    学习yii2.0——依赖注入
    学习yii2.0——行为
    学习yii2.0——事件
    学习yii2.0——数据验证
    让Apache和Nginx支持php-fpm模块
    安装python3
    使用php操作memcache
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/6605499.html
Copyright © 2011-2022 走看看