Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
如何使窗口的关闭按钮不可用,最小化及最大化可用及其它都可用?
谢谢指点!!
这个问题你是如何ok的
http://www.foxtable.com/dispbbs.asp?boardid=2&Id=8577&page=4
VS2008C#建立一个类库,在引用即可。
internal static extern IntPtr GetSystemMenu(IntPtr hwnd, bool bRevert);
[DllImport("user32.dll")]
internal static extern int GetMenuItemCount(IntPtr hMenu);
[DllImport("user32.dll")]
internal static extern int RemoveMenu(IntPtr hMenu, int uPosition, int uFlags);
[DllImport("user32.dll")]
internal static extern int DrawMenuBar(IntPtr hMenu);
protected void CloseButtonEnable(IntPtr hWnd)
{
// 默认窗口去除关闭按钮
const int MF_BYPOSITION = 0x00000400;
IntPtr hMenu = GetSystemMenu(hWnd, false);
int count = GetMenuItemCount(hMenu);
RemoveMenu(hMenu, count - 1, MF_BYPOSITION);
// RemoveMenu(hMenu, count - 5, MF_BYPOSITION);
DrawMenuBar(hWnd);
}
public void CloseForm()
{
CloseButtonEnable(Foxtable.GlobalProperties.Forms["聊天窗口"].BaseForm.Handle);
}
其实不用这么复杂的,自己在Foxtable的BeforeClose事件设置代码,判断某个Public全局变量的值,如果是True,则正常关闭,如果是False则取消关闭。
打开窗口将变量的值设置为False,在窗口加一个关闭按钮,按钮代码中将全局变量的值设置为True,这样可以通过此关闭按钮关闭窗口,直接通过窗口的关闭按钮则不可以。
加起来可以五行代码搞定:
全局代码:
public bbb As Boolean
窗口的AfterLoad事件:
bbb = True
窗口的Beforeclose事件:
e.cancel = not bbb
窗口的关闭按钮
bbb = True
e.Form.Close()
其实不用这么复杂的,自己在Foxtable的BeforeClose事件设置代码,判断某个Public全局变量的值,如果是True,则正常关闭,如果是False则取消关闭。
打开窗口将变量的值设置为False,在窗口加一个关闭按钮,按钮代码中将全局变量的值设置为True,这样可以通过此关闭按钮关闭窗口,直接通过窗口的关闭按钮则不可以。
加起来可以五行代码搞定:
全局代码:
public bbb As Boolean
窗口的AfterLoad事件:
bbb = True
窗口的Beforeclose事件:
e.cancel = not bbb
窗口的关闭按钮
bbb = True
e.Form.Close()
试过了,不行呀?那位狐友可以达到效果吗?
其实不用这么复杂的,自己在Foxtable的BeforeClose事件设置代码,判断某个Public全局变量的值,如果是True,则正常关闭,如果是False则取消关闭。
打开窗口将变量的值设置为False,在窗口加一个关闭按钮,按钮代码中将全局变量的值设置为True,这样可以通过此关闭按钮关闭窗口,直接通过窗口的关闭按钮则不可以。
加起来可以五行代码搞定:
全局代码:
public bbb As Boolean
窗口的AfterLoad事件:
bbb = True
窗口的Beforeclose事件:
e.cancel = not bbb
窗口的关闭按钮
bbb = True
e.Form.Close()
ok,将bbb = True改为bbb = False
窗口的关闭按钮
bbb = True
e.Form.Close()
加上Syscmd.Project.Exit()
ok,将bbb = True改为bbb = False
窗口的关闭按钮
bbb = True
e.Form.Close()
加上Syscmd.Project.Exit()
狐爸又犯這些菜鳥級的錯誤...