再谈“无标题栏窗口的移动技巧”

2016-02-19 14:52 6 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐再谈“无标题栏窗口的移动技巧”,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

  读了金永涛朋友的无标题栏窗口中鼠标拖动技巧一文颇有启发。但该文的思路是通过设置时钟中断,在Mousemove()事件中根据鼠标的移动距离,实时修改窗体Form的Top及Left值,即可准确无误地实现窗口的鼠标拖动操作。正如该文所说,由于每移动一步都需要重画窗口,因此利用此方法实现鼠标拖动,比常规的标题栏鼠标拖动慢一些。而且对于窗口中如有多种控件,若想使鼠标拖动窗口中的任何位置都可实现窗口移动,必须对窗口中的所有控件进行上述的鼠标位置记录与移动处理。

  这些缺陷都是该法难以克服的。下面根据笔者学习到的方法,提出另外一种无标题栏窗口中鼠标拖动的方法,该方法利用了API函数ReleaseCapture和SendMessage,通过ReleaseCapture来获取鼠标移动的信息并传到窗口中,再由SendMessage来发送信息实现窗口的移动。这种方法的优点在于:代码简单,而且无需对窗口中的控件进行编程。下面以VB为例。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  当Form的ControlBox属性为False且Caption属性没有设值时,窗口就变成了如图1所示的无标题栏的窗口了。移动窗体代码如下:

  在Modual1.BAS文件中声明:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  

Declare Function ReleaseCapture Lib "user32" () As LongDeclare Function SendMessage Lib "user32"Alias "SendMessageA" (ByVal hwnd As Long, _ByVal wMsg As Long, ByVal wParamAs Long, lParam As Any) As LongPublic Const HTCAPTION = 2Public Const WM_NCLBUTTONDOWN = &HA1然后,在Form_MouseDown事件中:Private Sub Form_MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single)ReleaseCaptureSendMessage hwnd,WM_NCLBUTTONDOWN,HTCAPTION, 0&End Sub
   这时你再运行程序,就会发现窗体可以移动,且上面的控件自动随窗体在移动。

  上述窗体在中文Visual Basic 6.0、中文Windows 98下运行通过。

来源:https://www.tulaoshi.com/n/20160219/1608171.html

延伸阅读
标签: 电脑入门
      黄钻用户现在可以修改QQ空间标题栏文字和颜色了,例如在换QQ空间皮肤的时候会出现文字颜色和皮肤底色太过接近已致于看不清标题栏,现在只限于黄钻用户使用。下面我们来告诉您下如何修改QQ空间标题栏文字颜色 一、打开您的QQ空间,把鼠标移到标题栏区域,这时候会在标题栏的右上角出现“编辑”链接,如下图: ...
标签: 电脑入门
经过几次的更新之后,你是否也发现了每次更新之后标题栏的颜色始终没有改变,但实际上我们确实可以自行来改变,换一种颜色换一个心情。 这里我们需要下载一个文件,下载之后解压,然后将其中的文件复制到系统盘中的WindowsResourcesThemes目录下,如下图所示: 操作完成后,双击运行其中的Windows文件,然后你就会发现你的标题栏颜色已...
标签: 电脑入门
QQ空间标题栏没有直接取消的功能。如果您不想显示默认的标题栏样式,建议您用QQ空间装扮进行装饰,同时我们提供了一款免费透明的标题栏给大家体验,详细操作如下: 第一步:请您登录到QQ空间,点击工具栏上的装扮; 第二步:点击装扮之后页面会出现装扮设置然后点击 标题栏设置,根据提示操作即可。
标签: windows10
Win10窗口标题栏高度以及滚动条宽度   1、按Win+R打开运行,输入regedit回车打开注册表编辑器; 2、展开 HKEY_CURRENT_USERControl PanelDesktopWindowMetrics; 3、在右侧找到CaptionHeight字符串值,它代表窗口标题栏的高度,其值计算方法为:-15*期望高度(像素)。比如,希望窗口标题栏高度为18,那么其值应该为-15*18=-270...
  1.添加引用:DBClient 2.置DBGridEh控件属性:   设置dghAutoSortMarking属性为true  设置希望排序的Column的TitleButton属性为true 3.//表格排序过程 procedure OrderGrid(dataSet:TClientDataset;orderField:string); var   i:integer; begin   if dataSet.IndexFieldNames'' then ...

经验教程

149

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部