用Delphi7.0实现漂亮的汉字窗口

2008-04-09 04:19:11来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  在可视化开发的时代,窗体是绝大部分应用程序的核心,但是开发者也许已对Windows一成不变的方形窗体感到厌烦。其实巧妙地使用API函数即可实现汉字形状的窗体。 本文的实例运行后将显示一个由“电脑报”三个汉字作为外形的窗体。当然你还可以利用本期讲的方法实现更有个性的汉字窗口。

  设计思路

  1?使用BeginPath和EndPath函数为窗体定义路径。

  2?用PathToRegion将路径转换为Region数据。

  3?调用SetWindowRgn按路径绘制窗体。

  4?由于不规则窗体无系统菜单,因此程序中必须有关闭窗体的代码。

  实现步骤

  启动Delphi7,新建项目。前述的API函数在Delphi中均可直接调用,因此用户不需要声明,可直接输入下面的控件事件代码。

//窗体创建事件
procedure TForm1.FormCreate?Sender? TObject??
var
 rgn?HRGN?
begin
 //设置文字颜色为红色
 form1.Color?=clred?
 //开始设置路径,参考API函数声明①
 beginpath?canvas.Handle??
 //设置背景为透明,参考API函数声明②
 setbkmode?canvas.Handle?TRANSPA
 RENT??
 //设置字体
 canvas.Font.Name ?='宋体'?
 //设置字号
 canvas.Font.Size?=100?
 //将汉字“电脑报”设置为窗体形状路径
 canvas.Textout?15?15?'电脑报'??
 //结束设置路径,参考API函数声明③,完成设计思路(1)
 endpath?canvas.handle??
 //将路径转换至区域,参考API函数声明④,完成设计思路(2)
 rgn?=pathtoregion?canvas.handle??
 //改变窗体形状,参考API函数声明⑤,完成设计思路(3)
 setwindowrgn?handle?rgn?true??
end?
 //鼠标按下的事件完成,进行设计思路(4)
procedure TForm1.FormMouseDown?Sender? TObject? Button? TMouseButton? Shift?   TShiftState? X? Y? Integer??
 begin
  //如用户单击右键,则结束程序运行
  if button=mbright then
   close?
end?
注:本文例子在Windows2000和Delphi7中测试通过。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi下的COM编程技术简介

下一篇:Delphi开发多媒体播放音轨问题小结