设置窗口的MinimizeBox属性为true,则右上角为x;
false时为ok,点击将退出。
去掉系统的出口代码:
//当窗口是ok时,隐藏ok按钮
ControlF.HideDoneButton(this.Handle);
当窗口是x时,隐藏x按钮
//ControlF.HideXButton(this.Handle);
下面代码是类
class ControlF
{
public const UInt32 SHDB_SHOW = 0x0001;
public const UInt32 SHDB_HIDE = 0x0002;
public const int GWL_STYLE = -16;
public const UInt32 WS_NONAVDONEBUTTON = 0x00010000;
/// <summary>
/// 隐藏OK按钮
/// </summary>
/// <param name="hWnd"></param>
public static void HideDoneButton(IntPtr hWnd)
{
SHDoneButton(hWnd, SHDB_HIDE);
}
/// <summary>
/// 隐藏X按钮
/// </summary>
/// <param name="hWnd"></param>
public static void HideXButton(IntPtr hWnd)
{
UInt32 dwStyle = GetWindowLong(hWnd, GWL_STYLE);
if ((dwStyle & WS_NONAVDONEBUTTON) == 0)
SetWindowLong(hWnd, GWL_STYLE, dwStyle | WS_NONAVDONEBUTTON);
}
[DllImport("aygshell.dll")]
private static extern bool SHDoneButton(IntPtr hWnd, UInt32 dwState);
[DllImport("coredll.dll")]
public static extern UInt32 SetWindowLong(IntPtr hWnd, int nIndex, UInt32 dwNewLong);
[DllImport("coredll.dll")]
public static extern UInt32 GetWindowLong(IntPtr hWnd, int nIndex);
}