您的位置:首页 > 其它

利用Windows消息循环,使窗体不能改变大小

2006-04-07 19:06 316 查看
作者:Christoph Herold
这篇文章介绍如何使窗体仅能被最大化,最小化!

介绍
你是否曾经用.NET 创建一个窗体,使窗体仅能被最大化、最小化?使用标准可用的选项实现是十分困难的.但是使用Windows消息循环,很容易使禁止Window标准特性.这篇文章将展示给你,用消息循环实现事实上是多么的简单.

重载窗体的WndProc方法
当一个窗体被最大化、最小化或者还原成窗体原始大小和位置时,Windows消息循环发送适当的命令给窗体. .NET窗体类会捕获所以的这些消息给你。在这个例子中,我们重载标准处理来忽略还原命令。这个被重载的窗体方法是WndProc.

protected override void WndProc(ref Message m)
protected override void WndProc(ref Message m)

假如窗体不是最小化的,这是最基本的代码。当你重新恢复最小化窗体,也就是"restored"。因为我们忽略了这个消息,我们将再也不能看到我们的窗体再次出现。因此我们必须扩展我们的方法,来检查当前的Window状态。假如窗体状态是最小化的,或者也不是最大化时,我们最大化我们的Window,而不是恢复它。
下面就是我们最后的执行代码:

protected override void WndProc(ref Message m)

在这个方法里的这两个Windows API常量(WM_SYSCOMMAND = 0x0112, SC_RESTORE = 0xF120)在Platform SDK 文件Winuser.h中可以找到
总结
当你理解了Windows 消息循环,修改窗体的默认特性是十分容易的。有益于我们看到.NET框架下的细节,有益于去创建简单的程序,也有益于我们编程。

原地址:
http://www.codeproject.com/useritems/DisableNormalWindowState.asp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐