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


    如何在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. 

  • 相关阅读:
    Web项目java.lang.OutOfMemoryError: PermGen space异常解决
    上传预览,图片展示大小的控制
    Eclipse常用插件安装_PropertiesEditor
    JDK的安装配置
    Eclipse与Tomcat的集成(无插件)
    Jsp&Servlet实现读取本地图片并展示
    DB2日期及时间的使用
    图片的另一种展现—将后台图片编码直接展现为图片
    Eclipse Task的使用
    Eclipse引入BASE64Encoder的问题
  • 原文地址:https://www.cnblogs.com/vin2008/p/2184210.html
Copyright © 2020-2023  润新知