您的位置:首页 > 其它

.Net下去掉MDI窗体内客户区的边框

2007-04-30 12:31 295 查看
.NET下,MDI窗体内客户区的3D边框很难看,下面是我写的一个类,可以去掉这个边框:

using System;
using System.Runtime.InteropServices;

namespace iUNS
{
/// <summary>
/// iuSetMdiClientBorder 的摘要说明。
/// </summary>
public class iuSetMdiClientBorder
{
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int GetWindowLong(int hwnd, int nIndex);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int SetWindowLong(int hwnd, int nIndex, int dwNewLong);
private const int GWL_EXSTYLE = (-20);
private const int WS_EX_CLIENTEDGE = 0x0200;

public iuSetMdiClientBorder()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

/// <summary>
/// 设置Mdi窗口客户区是否绘制3D边框
/// </summary>
/// <param name="hWnd">Mdi窗口的Handle</param>
/// <param name="showBorder">是否绘制3D边框</param>
public static void SetMdiClientBorder(int hWnd,bool showBorder)
{
int windowLong = GetWindowLong(hWnd,GWL_EXSTYLE);
if(showBorder)
windowLong = windowLong & WS_EX_CLIENTEDGE;
else
windowLong = windowLong & ~WS_EX_CLIENTEDGE;

SetWindowLong(hWnd, GWL_EXSTYLE, windowLong);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: