很多时间,我们不希望软件正在操作时,因为用户的误操作,点击任务栏的右键关闭按键而退出程序。
下面的逻辑是,当软件正在处理重要事务时,将FORM的ControlBox关闭,在WndProc事件中通过判断ControlBox的true /false来决定这次的CLOSE事件是否有效。
从而达到效果。
-
protected override void WndProc(ref Message m)
-
{
-
const int WM_SYSCOMMAND = 0x0112;
-
const int SC_CLOSE = 0xF060;
-
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
-
{
-
// 没有 [X]按键时,CLOSE事件无效
-
if(this.ControlBox == false)
-
return;
-
}
-
base.WndProc(ref m);
-
}
参考文献:
http://www.cnblogs.com/zeroone/archive/2010/03/31/1701084.html
http://blog.csdn.net/jumtre/article/details/38403457
阅读(4394) | 评论(0) | 转发(0) |