如何禁用双击窗体图标关闭窗体?

andytang555 2008-12-08 08:47:29
就是单击窗体左上角的图标会显示一个系统菜单,双击则会关闭窗体,这两个功能都不需要,想做成其它功能,得调Api吧,哪位高手知道?
...全文
164 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
philipsboya 2010-11-11
  • 打赏
  • 举报
回复
MARK
  • 打赏
  • 举报
回复
JJ从D转C真是借着东风放火啊!
jinjazz 2008-12-08
  • 打赏
  • 举报
回复
拦截系统菜单

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();


}
[DllImport("user32.dll")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x112)
{
if (m.WParam.ToInt32() == 61539 || m.WParam.ToInt32() == 61587)
{
Console.WriteLine(m.WParam);
return;
}
}
base.WndProc(ref m);
}
}
}
shaogao 2008-12-08
  • 打赏
  • 举报
回复
重载函数
protected override void OnFormClosing(FormClosingEventArgs e)
{
//判断鼠标的坐标如果在左上角
//就执行 e.Cancel = true;
//和其他的实现其他功能;
//如果在右上角就就关闭窗体
}
andytang555 2008-12-08
  • 打赏
  • 举报
回复
或者换一个思路,让左边的图标消失(不是设为透明按钮,那样还是能双击关闭),然后在双击标题栏时获取鼠标位置。其实我想要的效果就是:
1:右边的关闭按钮是一定要要的
2:双击标题栏折叠窗口(已经实现)
3:双击窗体图标最大化窗口(问题所在)

好像把边框类型设为toolWindow可以隐藏图标,但那个标题栏太小了,惨不忍睹
andytang555 2008-12-08
  • 打赏
  • 举报
回复
谢谢大家
使用上面代码后窗体不能关闭了!
我只是要左边图标双击时不关闭,有办法吗?我现在能通过api获取双击标题栏的事件(估且称为事件吧),能获取双击图标的吗?
ericllzh 2008-12-08
  • 打赏
  • 举报
回复
没错,要小心一些。
wangping_li 2008-12-08
  • 打赏
  • 举报
回复
调用API的话要控制一下,要不然你最小化窗体后,再打开,那个关闭按钮就又可以用了
上面这个代码是可以直接使用的
sikezx 2008-12-08
  • 打赏
  • 举报
回复
public partial class NoCloseForm : Form
{
/**//// <summary>
/// 获取已设置无法关闭窗口创建参数。
/// </summary>
protected override CreateParams CreateParams
{
get
{
int CS_NOCLOSE = 0x200;
CreateParams parameters = base.CreateParams;
parameters.ClassStyle |= CS_NOCLOSE;

return parameters;
}
}
}
这个还可以!看看,嘿嘿
wangping_li 2008-12-08
  • 打赏
  • 举报
回复

protected override CreateParams CreateParams
{
get
{
int CS_NOCLOSE = 0x200;
CreateParams parameters = base.CreateParams;
parameters.ClassStyle |= CS_NOCLOSE;

return parameters;
}
}

wuyq11 2008-12-08
  • 打赏
  • 举报
回复
T通过API实现
参考
http://www.cnblogs.com/anderslly/archive/2008/07/09/617153.html
sikezx 2008-12-08
  • 打赏
  • 举报
回复
什么意思,没有看懂
我将带领大家来系统学习Windows的窗口编程,包括消息、窗口、GDI绘图、游戏开发等。本课程比较基础,非常适合初学者入门,读者可以边学习边实践。具体的章节目录和课程内容如下所示:---------------------------------------------Windows游戏编程系列之1:GUI界面编程及游戏入门实战1、Windows创建第一个窗口 WinMain入口函数 5进行Windows编程的调试手法 6窗口从哪里来? 7窗口编程的步骤 7窗口编程需要的主要结构 8窗口编程需要的主要API 92、Windows的窗口过程与消息机制 如何留住窗口? 121)Windows的消息与消息循环 142)消息处理函数与常用消息 17)Windows的窗口过程函数 19 3、GDI编程之设备上下文 1)GDI的通用编程框架 222)GDI的绘图步骤 253)GDI获取设备句柄 254、GDI编程之绘制几何图形 画点、线 28颜色COLORREF 29矩形 29画圆、饼图、弦图 305、GDI编程之自定义画笔画刷画笔简介 32画刷简介 33画笔案例 33画刷案例 346、GDI编程之绘制文字 DrawText函数 35TextOut 函数 (wingdi.h) 36CreateFont函数 37绘制文本案例 377、GDI编程之绘制位图 位图简介 381)在资源中添加位图资源 392)从资源中加载位图: LoadBitmap 393)创建一个与当前DC相匹配的DC(内存DC) 394)将bitmap放入匹配的DC中:SelectObject 405)成像(1:1 比例 ) 406)取出位图 407)释放位图 418)释放匹配的DC 41绘制位图案例 41   8、Windows鼠标键盘消息 一、键盘消息 421、键盘消息 422、消息参数: 423、消息的使用: 424、键盘消息的案例代码 43二、鼠标消息 441、基本鼠标消息 442、双击消息 443、滚轮消息 454、不响应双击消息 45 9、Windows定时器消息 定时器消息介绍 47创建定时器 47关闭定时器 47定时器消息案例代码 4810、GDI游戏之跳舞动画 11、GDI游戏之走路动画 12、GDI贪吃蛇游戏实战  

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧