傳統(tǒng)的WINDOWS應用軟件界面給人的感覺總是千篇一律的方方正正的窗體,看的時間長了難免會有些厭煩,總是希望能見到些不同一般的軟件界面。如今,相當數(shù)量的商業(yè)軟件在提供優(yōu)秀而強大的功能的同時,軟件的界面也是做得越來越漂亮,比如《超級解霸2000》中的界面插件,使用過的人一定對其華麗的外觀充滿好感。作為一個編程愛好者,如果自己寫出的軟件也擁有類似的界面,也許會吸引更多目光的注視。那么,我們現(xiàn)在就開始動手制作自己的漂亮界面吧。
技術內幕
要想在自己的程序中加入不規(guī)則窗體的應用,你首先要熟悉幾個WINDOWS API函數(shù)的使用,它們是:橢圓形(或圓形)區(qū)域創(chuàng)建函數(shù)CreateEllipticRgn 、多邊形區(qū)域創(chuàng)建函數(shù)CreatePolygonRgn、 矩形區(qū)域創(chuàng)建函數(shù)CreateRectRgn、 帶圓角的矩形區(qū)域創(chuàng)建函數(shù)CreateRoundRectRgn。你可以用這些函數(shù)創(chuàng)建不同類型的窗體區(qū)域,也可以用WINDOWS API函數(shù)CombineRgn將幾個簡單區(qū)域組合成一個復雜區(qū)域。
下一步要做的就是將已經創(chuàng)建好的區(qū)域顯示在屏幕上,同樣也是使用WINDOWS API 函數(shù)來實現(xiàn),這次用到的是SetWindowRgn函數(shù)。
WINDOWS API 函數(shù)在Borland C++ Builder 頭文件中均已定義,在應用程序中使用這些API函數(shù)就象使用C++的普通庫函數(shù)一樣。
準備工作:為你的程序準備一幅背景圖片,推薦方法是: 在PhotoShop中打開圖片后使用磁性套索工具選取你所需要的圖象輪廓——復制——新建文件(背景使用白色)——粘貼——另存文件(PSD文件)——用ACDSee等看圖軟件將保存的PSD文件轉換為BMP文件face.bmp備用。
程序中引用圖片
打開Borland C++ Builder,在窗體上放置一個Image控件Image1,其Picture暫為空;在窗體上放置一個Popup菜單,編輯菜單項增加“Close”項(添加程序代碼使得激活彈出菜單時即可關閉應用程序)。程序中做如下處理:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile(".\\face.bmp");
Width=Image1->Width;
Height=Image1->Height;
Repaint();
}
此時,窗體的大小已能跟隨所用圖片的大小而改變,但仍舊是傳統(tǒng)的WINDOWS界面,要想顯示成具有圖片輪廓的窗體外形,就需要使用前文介紹的WINDOWS API函數(shù)將不需要顯示的部分摳去。
技術內幕
要想在自己的程序中加入不規(guī)則窗體的應用,你首先要熟悉幾個WINDOWS API函數(shù)的使用,它們是:橢圓形(或圓形)區(qū)域創(chuàng)建函數(shù)CreateEllipticRgn 、多邊形區(qū)域創(chuàng)建函數(shù)CreatePolygonRgn、 矩形區(qū)域創(chuàng)建函數(shù)CreateRectRgn、 帶圓角的矩形區(qū)域創(chuàng)建函數(shù)CreateRoundRectRgn。你可以用這些函數(shù)創(chuàng)建不同類型的窗體區(qū)域,也可以用WINDOWS API函數(shù)CombineRgn將幾個簡單區(qū)域組合成一個復雜區(qū)域。
下一步要做的就是將已經創(chuàng)建好的區(qū)域顯示在屏幕上,同樣也是使用WINDOWS API 函數(shù)來實現(xiàn),這次用到的是SetWindowRgn函數(shù)。
WINDOWS API 函數(shù)在Borland C++ Builder 頭文件中均已定義,在應用程序中使用這些API函數(shù)就象使用C++的普通庫函數(shù)一樣。
準備工作:為你的程序準備一幅背景圖片,推薦方法是: 在PhotoShop中打開圖片后使用磁性套索工具選取你所需要的圖象輪廓——復制——新建文件(背景使用白色)——粘貼——另存文件(PSD文件)——用ACDSee等看圖軟件將保存的PSD文件轉換為BMP文件face.bmp備用。
程序中引用圖片
打開Borland C++ Builder,在窗體上放置一個Image控件Image1,其Picture暫為空;在窗體上放置一個Popup菜單,編輯菜單項增加“Close”項(添加程序代碼使得激活彈出菜單時即可關閉應用程序)。程序中做如下處理:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile(".\\face.bmp");
Width=Image1->Width;
Height=Image1->Height;
Repaint();
}
此時,窗體的大小已能跟隨所用圖片的大小而改變,但仍舊是傳統(tǒng)的WINDOWS界面,要想顯示成具有圖片輪廓的窗體外形,就需要使用前文介紹的WINDOWS API函數(shù)將不需要顯示的部分摳去。