任务栏程序-01

这里的人气真是不旺啊,我来添一把柴,希望能够带动大家的编程热情。这是我第一次写教程,不足之处大家多包涵。打算分两次写成一个列于桌面右侧的sidebar(中文名不知道叫什么,好像应该算是任务栏,因为主要灵感来自于Desktop Sidebar)程序,可以从网上读取天气预报,可以显示当前的时钟等基本功能(你可以加入自己的功能)。我的编程环境是Windows 2003 + Delphi 7,其他版本的delphi和windows我想都是没有问题的,演示请看附件。我想读者应该会一点Delphi,分两次主要是照顾一些初学者。OK, Let's go!

//-----------正文开始-------------------

不知到大家注意到没有?其实桌面(Desktop)和form1一样都是窗体(Window),区别在于桌面是在所有窗口的后面,我们完全可以是使我们自己的窗体具有这种性质。

procedure TForm1.FormCreate(Sender: TObject);
var
  hDeskTop:THandle;
begin
  hDeskTop:=FindWindow('Progman', 'Program Manager');
  windows.SetParent(handle,hDeskTop);

end;

按照上面的代码试一试,看看win+D会不会让这个Form1窗体最小化到任务栏?答案当然是否定的,因为它已经具有了和桌面一样的属性。这就是这次教程的技巧之一。

Sidebar应当靠在桌面的右边或者其他什么地方,这在Delphi里是十分简单的。在Object Inspector中设置Form1的BorderStyle为bsNone;Width为195;在FormCreate中加入如下:

procedure TForm1.FormCreate(Sender: TObject);
var
  hDeskTop:THandle;
  r: Trect;
begin
  r:= Screen.DesktopRect;  //读取桌面分辨率
  Self.Top := 0;
  Self.Left := r.Right-r.Left-Self.Width ; //靠右侧
  Self.Height :=  r.Bottom-r.Top;          //与桌面等高

  hDeskTop:=FindWindow('Progman', 'Program Manager');
  windows.SetParent(handle,hDeskTop);

end;

就会建立一个靠右侧的Sidebar(退出时按Alt+F2),很好玩吧。这次就到这里,下次再见。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值