工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > Delphi > 正文
用Delphi实现QQ窗体的缩入伸出功能
[文章信息]
作者:书生整理
时间:2005-03-24
出处:vbzx
责任编辑:方舟
[文章导读]
不知道大家在使用QQ时有没有想到它的缩入伸出的功能是如何实现的呢?
advertisement
专题教程宝典
【软件应用】
【办公软件】
【图形图像】
【网页制作】
【操作系统】
【网络安全】
【程序开发】
【日报周刊】
【多媒体教程】
· 天极软件应用多媒体教程
· 3Ds max7多边形建模从入门到进阶
· 微软对.NET失去信心?.NET专家激起千层浪
· Outlook使用技巧大全(一)
· 抢先试用卡巴斯基 KIS 2006
· 自己动手制作手机Flash主题动画
· 完美的C++:C++/CLI
· 四款网络监控软件测评
· 中搜网络猪风行天下使用感受
· 数字证书使用一点通
[正文]
  不知道大家在使用QQ时有没有想到它的缩入伸出的功能是如何实现的呢?实现这个效果的关键在于如何判断当前鼠标指针下面的窗体是不是我们的程序窗体。GetCursorPos()是一个可以获得鼠标指针在屏幕中的坐标的API函数,利用它与FindVCLWindow()的结合就可以轻易地获得鼠标指针下的VCL可视组件,但当一个窗体中不只一个VCL可视组件,例如可能还有TPanel、TMemo等等类型时,那么我们就必须要查找到它们的Parent级,最终得到TForm,那就是指我们的程序窗体。按照这个思路我自定义了GetFormNameAt()函数,它可获得当前鼠标指针下面的窗体的名称。以下列出程序的主要实现代码,供大家参考:

//自定义函数GetFormNameAt,获得鼠标针指下窗体的Name
function GetFormNameAt ( X, Y : integer ) : string;
 var
  P:TPoint;
  W:TWinControl;
 begin
  P.X := X;
  P.Y := Y;
  W := FindVCLWindow(P); //得到鼠标指针下的VCL可视组件
  if ( nil <> W ) then
  begin
   while w.Parent<>nil do //当W的上级Parent不为空时就继续往上找
    w:=w.Parent;
    Result := W.Name;//最后返回窗体的名称Name
   end
  else
  begin
   Result := ’’;
  end;
 end;

 procedure TForm1.Timer1Timer(Sender: TObject);
 var
  winPos:TPoint;
 begin
  if (form1.Top<=3) or (form1.Left>=screen.Width-form1.Width-3) then //判斷
  begin
   GetCursorPos(winpos); //得到当前鼠标指针的在屏幕上的坐标

   //当鼠标指针下的窗体的Name等于form1.name时
   if form1.name=GetFormNameAt(winpos.X,winpos.Y) then
    {在此我们可以为form1取一个特别的名称,以防有别的窗体名称与它相同}
   begin
    form1.Timer2.Enabled:=false; //停用Timer2
    form1.Top:=0; //form1的Top与屏幕对齐
   end
  else
   form1.Timer2.Enabled:=true; //开启Timer2
  end;
 end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
 if form1.Top<=20 then
  form1.Top:=-(form1.Height-10);//将form1向上移,在屏幕上方露出10像素
end;

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Delphi中用ICMP探测远程主机状态
  • 一种树型控件在Delphi中的使用方法
  • 利用Indy的TIdFtp控件实现FTP协议
  • 用Delphi实现Singleton模式
  • Delphi2005和DUnit搭建敏捷开发平台
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 【315】华硕笔记本电脑漏电 存在设计缺陷
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • Advertisement

    天极无线
    经典名曲 华语流行 欧美风情 人声音效 原声大碟
    你好周杰伦-安又琪
    直线-张韶涵
    天边-张韶涵
    看我72变-蔡依林
    乱世佳人-Twins
    全世界下雨-张娜拉
    我们的爱-飞儿乐队
    分手快乐-梁静茹
    爱在西元前-周杰伦
    三万英尺-迪克牛仔
    爱如潮水-张信哲
    爱情宣言-齐秦
    寻找玛依拉-刀郎
    驼铃-刀郎
    老鼠爱大米-杨臣刚
    功夫主题曲
    仙剑主题曲杀破狼
    天下无贼片尾曲
    冲动的惩罚-刀郎
    情人-刀郎
    爱情-莫文蔚
    挪威的森林-伍佰
    奔跑 - 羽泉
    因为爱 - 羽泉
      ·时尚女人圈
    ·经典影视专集
    ·美女秀场
    ·美丽大自然专题
    ·流行金曲
    ·科幻电影特区
    | 最新推荐
    ·你好周杰伦
    ·杀破狼
    ·寻找玛依拉
    ·孤单公园
    ·男人海洋
    | 魔术铃声
    ·少女丰胸
    ·少妇丰胸
    ·减肥魔铃
    ·增高魔铃
    ·美容魔铃

    今日报价查询 更多报价