专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
腾讯QQ是当前流行的网络聊天工具之一,由于它在应用设计上有很多独特之处,所以也吸引了很多程序员对之进行研究和模仿。在这里,我将利用Delphi对QQ的窗体自动隐藏效果提出自己的实现方法。 一、问题的提出熟悉QQ使用的朋友都知道,当QQ窗体区域超出屏幕四边时,窗体就会自动“消失”,只留下窗体一边的小部分显露在桌面上。当用鼠标移动到显露部分之上,窗体就会在隐藏位置重新完整显示;但当鼠标离开窗体区域后,窗体便会重新进入隐藏状态。   对隐藏的全过程进行分析,可以得出两点推测:第一,窗体隐藏的处理是与窗体移动过程有关;第二,窗体隐藏的触发条件是窗体的区域已经移动到 [阅读全文] [PDF]
四、进一步完善  上面的代码已经基本实现了窗体的自动隐藏效果,但是我在介绍代码的时候有两个问题是被提出但没有被解答的。  首先是为什么触发隐藏时Fanchors中将至少有一个值而不多于两个值呢?注意代码中对Fanchors的赋值是通过四个判断进行的,那么如果触发隐藏的话,Fanchors中将毫无疑问会有一个值存在,但这种情况是针对隐藏发生在屏幕的四边而言。当窗体被推入到屏幕的四角时,那么Fanchors中便将会有两个值存在。那此时窗体会隐藏到什么地方呢?  实际的效果告诉我们,窗体会被隐藏到屏幕的四角上。此时若我们试图让窗体重新显示,你便会发现窗体在不断的 [阅读全文] [PDF]
三、初步的实现  首先我们定义一个过程对WM_MOVING消息进行拦截处理,代码如下:……privateFAnchors: TAnchors;procedure WMMOVING(var Msg: TMessage); message WM_MOVING;……uses Math,type;procedure TForm1.WMMOVING(var Msg: TMessage); begininherited;with PRect(Msg.LParam)^ dobegin Left := Min(Max(0, Left), Screen.Width - Wi [阅读全文] [PDF]
1 共4条 分1页