⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 011.htm

📁 Delphi书籍--Delphi网上教程
💻 HTM
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI专题--用户界面-->不用标题栏也移动窗体</TITLE>
<META NAME="keywords" CONTENT=" DELPHI专题--用户界面 不用标题栏也移动窗体">
<META NAME="description" CONTENT=" - DELPHI专题--用户界面 - 不用标题栏也移动窗体">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<a href="index1.html">返回</a>

<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>

<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">不用标题栏也移动窗体</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p>一般情况下,移动一个窗体需要将鼠标放置在标题栏上才能拖动窗体,为 
什么非要使用标题栏呢?其实我们可以使用一个巧妙的方法来实现将鼠标放置 
在窗体上按下就可拖动窗体,下面先看实现代码。在Form1的“Private”部分声明过程:<br> 
<br> 
在private部分加入下列代码:<br> 
procedure wmnchittest(var msg:twmnchittest);<br> 
message wm_nchittest;<br> 
在程序部分加入以下代码:<br> 
procedure TForm1.wmnchittest(var msg:twmnchittest);<br> 
begin<br> 
inherited;<br> 
if (htclient=msg.result) then msg.result:=htcaption;<br> 
end;<br> 
  上面的关键代码虽然只有两行,但它实现了鼠标直接拖动窗体的目的。代码的原理是利用窗体的WM_NCHITTEST消息,这个消息是当光标移动、鼠标按下或释放时发生的,当程序检测到鼠标在窗体中按下的消息后(消息的值为htClient),将鼠标在标题栏上按下时产生的消息(值为htCaption)传递出去,这样就巧妙的欺骗程序认为是标题栏被按下,当然就可拖动窗体了</p>
<hr color="#EE9B73" size="1" width="94%">

</TD>

</TR>
</table>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -