zoukankan      html  css  js  c++  java
  • WinForm无边框窗体和窗体移动

    窗体移动和窗体阴影API调用和使用方式 - 针对无边框窗体的套餐

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Windows.Forms;
    
    namespace 无边框阴影测试
    {
        public partial class Form1 : Form
        {
            //窗体阴影API
            const int CS_DropSHADOW = 0x20000;
            const int GCL_STYLE = (-26);
            //声明Win32 API
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong);
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            public static extern int GetClassLong(IntPtr hwnd, int nIndex);
            public Form1()//构造函数调用方法
            {
                InitializeComponent();
                SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW); //API函数加载,实现窗体边框阴影效果
            }
    
    
            //窗体移动API
            [DllImport("user32.dll")]
            public static extern bool ReleaseCapture();
            [DllImport("user32.dll")]
            public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);
            public const int WM_SYSCOMMAND = 0x0112;
            public const int SC_MOVE = 0xF010;
            public const int HTCAPTION = 0x0002;
            [DllImport("user32")]
            private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
            private const int WM_SETREDRAW = 0xB;
            private void Form1_MouseDown(object sender, MouseEventArgs e)//事件调用方法
            {
                if (this.WindowState == FormWindowState.Normal)
                {
                    ReleaseCapture();
                    SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
                }
            }
        }
    }
  • 相关阅读:
    centos 6.8 配置 Redis3.2.5
    php将字符串转为二进制数据串
    php密码对称encrypt加密
    mysql 新建用户并赋予远程访问权限
    centos6.8 搭建postfix/dovecot邮件服务器
    centos 6.8 设置svn钩子同步至web目录
    百分百解决Job for network.service failed. See 'system的问题
    java锁机制详解
    解决网页打不开简书的问题
    SpringBoot读取不到application.yml
  • 原文地址:https://www.cnblogs.com/xkkk/p/5679030.html
Copyright © 2011-2022 走看看