当前位置:K88软件开发文章中心编程语言.NET.NET01 → 文章内容

C#窗体边框阴影效果的实现方法

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2018-12-31 11:50:45

:2010-04-29 18:11:00

如果给C#编写的窗口边框加上阴影,将使窗体变得非常酷,但这需要借助windows的动态链接库(win32 API)来实现,下面就给出了一个小实例来演示一下。

//首先引入相关的命名空间,除最下面的那个之外其余都由程序自动添加

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

namespace winForm //程序的命名空间
{
   public partial class Form1 : Form
  {
      #region 窗体边框阴影效果变量申明
     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_r(IntPtr hwnd, int nIndex);

     #endregion
    public Form1()
   {
         InitializeComponent();
       SetClassLong(this.Handle, GCL_STYLE, GetClassLong_r(this.Handle, GCL_STYLE) | CS_DropSHADOW); //API函数加载,实现窗体边框阴影效果
    }
 }
}

通过这个例子你应该熟悉DLL函数的引入方法,当然这些函数你可以查一下相关手册,看看如何使用。



C#窗体边框阴影效果的实现方法