丶控制窗体不能 放大/缩小/移动/关闭 !

如何在Delphi中把Form控制成不能放大/缩小/移动/关闭的窗体,可进行如下步骤:
  1.把Form的BorderIcons下的几个子属性值全改为False;
  2.修改Form的BorderStyle的值为bsSingle;
  3.为了让窗口不能移动,可以自已拦下WM_NCHITTEST消息,对该消息的处理为:一概回应鼠标点在窗口的Client区域, 相信这个视窗就不会动了。
	4.附送两个小函数实例中有说明!

下面是源码实例

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type TForm1 = class(TForm)

btn1: TButton;

btn2: TButton;

btn3: TButton;

procedure FormCreate(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure btn2Click(Sender: TObject);

procedure btn3Click(Sender: TObject);

private

procedure HideTaskbar; //隐藏任务栏

procedure ShowTaskbar; //显示任务栏

procedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST;

public

{ Public declarations }

end;

var

Form1:TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

begin

HideTaskbar;

end;

procedure TForm1.btn2Click(Sender: TObject);

begin

ShowTaskbar;

end;

procedure TForm1.btn3Click(Sender: TObject);

begin

Close; //这个必须 哈哈 不然没法关闭了

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 Form1.Caption := '当前的分辨率为:X ' + IntToStr(GetSystemMetrics(SM_CXSCREEN)) + ' Y ' + IntToStr(GetSystemMetrics(SM_CYSCREEN));

end;

procedure TForm1.WMNCHitTest(var Msg: TMessage);

begin

inherited; // 这样,移动就不可能了

Msg.Result := HTCLIENT; //固定窗体 不能 移动

//if Msg.Result=HTCLIENT then

//Msg.Result := HTCAPTION;

end;

{******************************************************************************}

{ 附送两个 函数 功能分别是 隐藏任务栏 和 显示任务栏!}

{******************************************************************************}

procedure TForm1.HideTaskbar; //隐藏

var

wndHandle : THandle;

wndClass : array[0..50] of Char;

begin

StrPCopy(@wndClass[0], 'Shell_TrayWnd');

wndHandle := FindWindow(@wndClass[0],nil);

ShowWindow(wndHandle, SW_HIDE);

end;

procedure TForm1.ShowTaskbar;

var

wndHandle : THandle;

wndClass : array[0..50] of Char;

begin

StrPCopy(@wndClass[0], 'Shell_TrayWnd');

wndHandle := FindWindow(@wndClass[0], nil);

ShowWindow(wndHandle, SW_RESTORE);

end;

end. 

转载于:https://www.cnblogs.com/vin2008/archive/2011/09/21/2184210.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值