zoukankan      html  css  js  c++  java
  • 丶控制窗体不能 放大/缩小/移动/关闭 !

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

  • 相关阅读:
    FFmpeg 协议初步学习
    HTML DOM(一):认识DOM
    ant 安装
    ubunut 查看port被哪个程序占用
    cacti气象图调整(批量位置调整、更改生成图大小等)
    内网port映射具体解释(花生壳)
    HDU 2647 Reward(图论-拓扑排序)
    白话经典算法系列之七 堆与堆排序
    Codeforces Round #191 (Div. 2)---A. Flipping Game
    Serverlet具体解释
  • 原文地址:https://www.cnblogs.com/vin2008/p/2184210.html
Copyright © 2011-2022 走看看