- 关 键 词:
- windows
我们可以通过设置窗体的属性以及编程的方法,限制和控制窗体的变化。如让窗体不能最小化、最大化、移动,甚至不能关闭。
使用Form的BorderIcon属性,我们可设置窗体是否具有系统菜单(biSystemMenu)、最小化按钮(biMinimize)、最大化按钮(biMaximize)和帮助按钮(biHelp)。
BorderIcon属性的这4个子属性均只有True和False属性。默认情况下四个子属性均为True。若将biSystemMenu属性设置为False,则不管其他属性如何设置,窗体此时不仅没有系统菜单,连最大最小按钮也没有,窗体不能最小化,也不能关闭。不管如何设置BorderIcon属性,窗体都能通过拖动边界来改变大小。
使用Form的BorderStyle属性,可以设置窗体的边界风格。常用的选项有四种:BsDialog(对话框边界)、bsNone(无边界)、bsSingle(单线边界)和bsSize(可改变大小的标准边界)。如果设置BorderStyle属性为BsDialog,则不能通过拖动边界来改变窗体大小,另外如果此时BorderIcon的biHelp子属性为True,窗体将显现出帮助按钮。如果设置BorderStyle属性为bsSingle,也不能通过拖动边界来改变窗体大小,但此时具有最大、最小和关闭按钮。
通过Form的Position属性可设置窗体的初始位置,如选择DesktopCenter为桌面中心,ScreenCenter为屏幕中心,等等。
如何不让窗体移动能,这是不能通过属性设置来实现的。我们可以通过编程来实现,拦下 WM_NCHITTEST 消息, 对该消息的处理为:一概回应鼠标点在窗口的 Client 区域, 相信这个视窗就呆呆的不会动了。
例程如下:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private { Private declarations }
procedure WMNCHitTest(var Msg: TMessage);
message WM_NCHITTEST; public { Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close; // 不可少, 因为已经没有其他方法能关闭此窗口了
end;
procedure TForm1.WMNCHitTest(var Msg: TMessage);
begin
inherited; // 这样,移动就不可能了...
Msg.Result := HTCLIENT;
end;
end.收藏地址:http://www.qqread.com/delphi/w215434.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Office技巧专区 (7045篇文章)
- 网管实用技巧100例 (6775篇文章)
- ADO.NET实用技巧 (6301篇文章)
- delphi三十六之加密篇 (543次浏览)
- 用Delphi做一个OpenGL控件 (313次浏览)
- 用Delphi制作录音程序 (312次浏览)
- 用Delphi编写点对点传文件程序 (309次浏览)
- Delphi笔试题 (155次浏览)
- 将鼠标锁定在一定范围 (151次浏览)
- Delphi设计PhotoShop型弹出菜单 (144次浏览)
- 用DELPHI 设 计 屏 幕 保 护 程 序 (118次浏览)
- 用Delphi7设计FTP上传软件 (115次浏览)
- 在Delphi中自动检测、建立数据库别名和表格 (111次浏览)



