在可视化开发的时代,窗体是绝大部分应用程序的核心,但是开发者也许已对Windows一成不变的方形窗体感到厌烦。其实巧妙地使用API函数即可实现汉字形状的窗体。 本文的实例运行后将显示一个由电脑报三个汉字作为外形的窗体。当然你还可以利用本期讲的方法实现更有个性的汉字窗口。
设计思路
1犑褂肂eginPath和EndPath函数为窗体定义路径。
2犛肞athToRegion将路径转换为Region数据。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)3牭饔肧etWindowRgn按路径绘制窗体。
4犛捎诓还嬖虼疤逦尴低巢说ィ因此程序中必须有关闭窗体的代码。
实现步骤
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)启动Delphi7,新建项目。前述的API函数在Delphi中均可直接调用,因此用户不需要声明,可直接输入下面的控件事件代码。
//窗体创建事件procedure TForm1.FormCreate烻ender TObject牔var rgn烪RGNbegin //设置文字颜色为红色 form1.Color=clred //开始设置路径,参考API函数声明① beginpath焎anvas.Handle牔 //设置背景为透明,参考API函数声明② setbkmode焎anvas.Handle烼RANSPA RENT牔 //设置字体 canvas.Font.Name ='宋体' //设置字号 canvas.Font.Size=100 //将汉字电脑报设置为窗体形状路径 canvas.Textout1515'电脑报'牔 //结束设置路径,参考API函数声明③,完成设计思路(1) endpath焎anvas.handle牔 //将路径转换至区域,参考API函数声明④,完成设计思路(2) rgn=pathtoregion焎anvas.handle牔 //改变窗体形状,参考API函数声明⑤,完成设计思路(3) setwindowrgn焗andle焤gn焧rue牔end //鼠标按下的事件完成,进行设计思路(4)procedure TForm1.FormMouseDown烻ender TObject Button TMouseButton Shift TShiftState X Y Integer牔 begin //如用户单击右键,则结束程序运行 if button=mbright then closeend
注:本文例子在Windows2000和Delphi7中测试通过。