zoukankan      html  css  js  c++  java
  • [Delphi]不用标题栏也移动窗体

    一般情况下,移动一个窗体需要将鼠标放置在标题栏上才能拖动窗体,为 什么非要使用标题栏呢?其实我们可以使用一个巧妙的方法来实现将鼠标放置在窗体上按下就可拖动窗体,下面先看实现代码。

    在Form1的“Private”部分声明过程:
    在private部分加入下列代码:

    代码
    1procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;
    2

    在程序部分加入以下代码:

    代码
    procedure TForm1.wmnchittest(var msg:twmnchittest);
    begin
        
    inherited;
        
    if (htclient=msg.result) then msg.result:=htcaption;
    end;


    上面的关键代码虽然只有两行,但它实现了鼠标直接拖动窗体的目的。

    代码的原理是利用窗体的WM_NCHITTEST消息,这个消息是当光标移动、鼠标按下或释放时发生的,当程序检测到鼠标在窗体中按下的消息后(消息的值为htClient),

    将鼠标在标题栏上按下时产生的消息(值为htCaption)传递出去,这样就巧妙的欺骗程序认为是标题栏被按下,当然就可拖动窗体了。


     

  • 相关阅读:
    LoadRunner调用java函数测试oracle
    pam_cracklib.so模块
    crontab定时任务安装、使用方法
    yum的repo文件详解、以及epel简介、yum源的更换
    ubuntu添加开机自启和sysv-rc-conf
    MySQL配置参数详解
    集群管理软件clustershell
    Mysql命令大全
    Nginx配置文件nginx.conf 详解
    linux下iptables配置详解
  • 原文地址:https://www.cnblogs.com/dabiao/p/1614848.html
Copyright © 2011-2022 走看看