c# 无边框窗体的边框阴影

Windows API:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace BaseForm
{
    public partial class FormEnumlator : Form
    {
        public FormEnumlator()
        {
            InitializeComponent(); 

            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
            SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW); //API函数加载,实现窗体边框阴影效果
            Location = new Point(0,0);
            //  this.StartPosition = FormStartPosition.Manual;
        }

        private bool _IsMouseDown;
        private Point _oldLocation;
        private Point _startPoint;

        #region 窗体边框阴影效果变量申明

        private const int CS_DropSHADOW = 0x20000;
        private 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);

        #endregion

        protected override void OnLoad(EventArgs e)
        {
           // base.OnLoad(e);
        }

        private void frmEnumlator_Load(object sender, EventArgs e)
        {

        }
    }
}

原文地址:https://www.cnblogs.com/wgscd/p/10267086.html

时间: 2024-11-07 14:04:33

c# 无边框窗体的边框阴影的相关文章

无边框窗体 timer控件

一.无边框窗体1.控制按钮如何制作 MouseEnter-鼠标移入的时候发生的事件 pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\..\\..\\images\\btn_close_highlight.png"); MouseLeave-鼠标移出的时候发生的事件 pictureBox1.BackgroundImage = Image.FromFile(Application.Start

无边框窗体、用户控件、Timer控件

一.无边框窗体1 最大化.最小化以及关闭按钮制作 实际上就是更换点击前.指向时.点击时的图片 (1)将图片放在该文件夹的Debug中, 获取图片的路径 Application.StartupPath + "\\图片名.类型"(2)若是放在该文件夹的中,Application.StartupPath + "\\..\\..\\images\\图片名.类型" \..\文件夹名称... 向上翻一个文件夹,上面的第一个\是转义 pictureBox2.BackgroundI

无边框窗体、后台创建控件、简单通讯

一.无边框窗体 1.控制按钮如何制作: 就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要可以点击能触发点击事件就可以了 (1)美化一下的话那就可以把鼠标移入,移出,按下三个事件让按钮改变样式 (2)如何获取图片的相对路径 //鼠标移入时显示的图片 private void pictureBox1_MouseEnter(object sender, EventArgs e) { pictureBox1.BackgroundImage = Image.FromFile(Applicatio

WinForm 无边框窗体和timer控件

一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入,移出,按下三个事件会让按钮改变样式 如何获取图片的相对路径Application.StartupPath + "\\..\\..\\images\\btn_close_highlight.png" \..\文件夹名称... 向上翻一个文件夹 2.如何让窗体动起来调用窗体移动的API 如果有其它控件覆盖了窗体,那么写好鼠标按下的事件委托

无边框窗体和后台创建控件

1.无边框窗体 最小化 最大化 关闭 按钮 不一定非要用按钮来做, 可以用图片 写事件,加上鼠标 移入移出 点击 来操作 MouseEnter-鼠标移入的时候发生的事件 private void pictureBox1_MouseEnter(object sender, EventArgs e) { pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\..\\..\\images\\btn_close

C#-WinForm-无边框窗体的移动和阴影-API

//窗体移动API,先导入命名空间,在委托MouseDown事件 //移动前准备 [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

winform 无边框窗体

一.无边框窗体1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入,移出,按下三个事件会让按钮改变样式Mouseenter鼠标进入Mouseleave鼠标移出Mousedown鼠标按下 改变样式代码: pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\..\\..\\images\\btn_close_disable

winform(无边框窗体与timer)

一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseEnter),移出(pictureBox1_MouseLeave),按下( pictureBox1_MouseDown)三个事件会让按钮改变样式 如何获取图片的相对路径:Application.StartupPath + "\\..\\..\\images\\btn_close_highlight.p

PYQT设计无边框窗体

#UI.py,通过UI设计师制作后直接转换为UI.py脚本 # -*- coding: utf-8 -*-from PyQt4 import QtCore, QtGui try:    _fromUtf8 = QtCore.QString.fromUtf8except AttributeError:    _fromUtf8 = lambda s: s class Ui_Form(object):    def setupUi(self, Form):        Form.setObject