在可視化開發的時代,窗體是絕大部分應用程序的核心,但是開發者也許已對Windows一成不變的方形窗體感到厭煩。其實巧妙地使用API函數即可實現漢字形狀的窗體。 本文的實例運行後將顯示一個由“電腦報”三個漢字作為外形的窗體。當然你還可以利用本期講的方法實現更有個性的漢字窗口。
設計思路
1使用BeginPath和EndPath函數為窗體定義路徑。
2用PathToRegion將路徑轉換為Region數據。
3調用SetWindowRgn按路徑繪制窗體。
4由於不規則窗體無系統菜單,因此程序中必須有關閉窗體的代碼。
實現步驟
啟動Delphi7,新建項目。前述的API函數在Delphi中均可直接調用,因此用戶不需要聲明,可直接輸入下面的控件事件代碼。
//窗體創建事件
procedure TForm1.FormCreateSender TObject
var
rgnHRGN
begin
//設置文字顏色為紅色
form1.Color=clred
//開始設置路徑,參考API函數聲明①
beginpathcanvas.Handle
//設置背景為透明,參考API函數聲明②
setbkmodecanvas.HandleTRANSPA
RENT
//設置字體
canvas.Font.Name ='宋體'
//設置字號
canvas.Font.Size=100
//將漢字“電腦報”設置為窗體形狀路徑
canvas.Textout1515'電腦報'
//結束設置路徑,參考API函數聲明③,完成設計思路(1)
endpathcanvas.handle
//將路徑轉換至區域,參考API函數聲明④,完成設計思路(2)
rgn=pathtoregioncanvas.handle
//改變窗體形狀,參考API函數聲明⑤,完成設計思路(3)
setwindowrgnhandlergntrue
end
//鼠標按下的事件完成,進行設計思路(4)
procedure TForm1.FormMouseDownSender TObject Button TMouseButton Shift TShiftState X Y Integer
begin
//如用戶單擊右鍵,則結束程序運行
if button=mbright then
close
end
注:本文例子在Windows2000和Delphi7中測試通過。