位圖
位圖是用于在窗體上顯示圖片的圖形對象,它是各種場合下圖形對象常用的一種類型。例如,位圖可以作為窗體的背景,下面是用于某些Windows版本隨帶的彈球游戲圖:
圖一、彈球游戲圖
位圖也可以用來裝飾對話框來達到美學(xué)效果。下圖WordPerfect 2002安裝程序界面上的位圖就顯示了這種效果。
圖二、帶有位圖的對話框效果圖
位圖最常用的用法可能還是被作為工具條上的圖片。
圖三、帶有位圖的工具條
一、創(chuàng)建一個位圖
為了創(chuàng)建一個位圖,可以使用任何圖形應(yīng)用程序,包括Windows安裝的畫筆程序。在Visual C++ .NET中,為了創(chuàng)建一個位圖,你可以在主菜單上點擊"Project -> Add Resource..."。
圖四、Visual C++ .NET中的添加資源對話框
在添加資源對話框中,選擇位圖,并點擊new按鈕,一個新的以"BMP"為擴展名的文件將添加到工程腳本當(dāng)中。這時候你可以自己進行設(shè)計位圖,直道滿意為止。
圖五、設(shè)計位圖實例
實例:創(chuàng)建一個位圖
1、生成一個新的窗體應(yīng)用程序,命名為Resources1;
2、右擊下面的圖片并單擊復(fù)制菜單;
圖六、資源圖片
3、啟動微軟的畫筆程序,并將圖片復(fù)制到該程序。
4、為了改變蝴蝶的方向,在畫筆程序中選擇"Image -> Flip/Rotate..."
5、在"Flip and Rotate"對話框中,選擇水平單選框并點擊"OK"按鈕;
圖七、水平翻轉(zhuǎn)后的資源圖片
6、將文件命名為"Butterfly.bmp",并將文件存儲在在當(dāng)前工程文件夾中。
7、返回Visual Studio開發(fā)環(huán)境。
二、使用位圖
為了支持位圖,GDI+提供了Bitmap類,Bitmap類是建立在抽象的Image類基礎(chǔ)上的,如果創(chuàng)建了一個位圖并將它存儲為一個文件,可以將文件的路徑傳遞給這個類的構(gòu)造函數(shù),如下所示:
public: Bitmap(String *filename);
一旦已經(jīng)準(zhǔn)備好了圖片,為了將它呈現(xiàn)給用戶,可以調(diào)用Graphics::DrawImage()方法。根據(jù)所有可能的需要,這個方法重載了很多版本,其中的一個版本使用如下的語法:
public: void DrawImage(Image *img, Point point);
第一個參數(shù)是一個先前已經(jīng)初始化了的位圖對象,第二個參數(shù)規(guī)定了圖片將畫在什么位置,這個位置對應(yīng)于圖片的左上角。
下面是一個例子代碼:
private: System::Void Form1_Paint(System::Object * sender,
System::Windows::Forms::PaintEventArgs * e)
{
Bitmap *bmpFood = new Bitmap(S"FoodBasket.bmp");
e->Graphics->DrawImage(bmpFood, 0, 0);
}
圖八、例子代碼顯示的圖片
實例:顯示一個位圖
1、點擊窗體的空白區(qū)域,確定已經(jīng)選擇了該窗體,在屬性窗口中選擇事件按鈕;
2、為了顯示圖片,雙擊重畫區(qū)域,并輸入以下代碼:
private: System::Void Form1_Paint(System::Object * sender,
System::Windows::Forms::PaintEventArgs * e)
{
Bitmap *butterfly = new Bitmap(S"Butterfly.bmp");
e->Graphics->DrawImage(butterfly, 10, 10);
}
3、執(zhí)行上述代碼進行測試,。
圖九、代碼測試效果圖
4、關(guān)閉窗體返回開發(fā)環(huán)境。
圖標(biāo)
一、圖標(biāo)
與位圖一樣,位圖用來在窗體對象上顯示圖形,不同的是,位圖可以具有窗體所需要的任何尺寸,而圖標(biāo)的尺寸是受到限制的。這是因為圖標(biāo)在一個應(yīng)用程序中扮演著不同的角色。
圖標(biāo)用來在窗體管理器和我的電腦中代表一個文件夾。
圖十、Windows下的各種圖標(biāo)
二、創(chuàng)建圖標(biāo)
為了創(chuàng)建一個圖標(biāo),可以再一次使用具有這種能力的應(yīng)用程序。通常情況下,可以使用Visual Studio .NET來創(chuàng)建或設(shè)計一個圖標(biāo)。為了這么做,在Visual Studio的主菜單上,點擊Project -> Resource…,在增加資源對話框中,選擇圖標(biāo),然后點擊NEW按鈕。
當(dāng)開始設(shè)計一個圖標(biāo)時,呈現(xiàn)在你面前的是一個32X32像素的繪圖區(qū)域。這是作為大圖標(biāo)顯示時的尺寸。這有一個例子來自于Visual Studio .NET中New File對話框中的模板列表:
圖十一、模板列表中標(biāo)的對話框
在某些情況下,你可能要允許用戶使用小圖標(biāo),它的尺寸是16X16像素,如下圖所示:
圖十二、小圖標(biāo)
為了使小圖標(biāo)成為可能,可以關(guān)聯(lián)第二個圖標(biāo)到一個32x32的圖標(biāo),你所使用的用來設(shè)計圖標(biāo)的應(yīng)用程序應(yīng)該為你增添這第二個圖標(biāo)提供了方便。在Visual Studio中,可以在顯示一個圖標(biāo)時,點擊主菜單上的Image -> New Image Type...,然后選擇16x16, 256種顏色,然后選擇"OK"鍵。
無論你是創(chuàng)建一個版本還是兩個版本的圖標(biāo),它門全都存儲在一個文件中,擴展名是.ico。
實例:創(chuàng)建圖標(biāo)
1、在主菜單上,點擊Project -> Add Resource...;
2、在添加資源對話框中,雙擊圖標(biāo)
;
3、在圖像編輯工具條中,點擊Fill工具
,右擊綠色區(qū)域?qū)⑺兏鼮榘咨?div style="height:15px;">
4、在圖象編輯工具條中,點擊"LINE"按鈕 ;
5、在顏色面板中選擇藍(lán)色;
6、在空白的畫圖區(qū)域,通過鼠標(biāo)拖、拉操作、選擇顏色等,繪制下圖(16X16圖標(biāo)設(shè)計方法不再贅述);
圖十三、自畫的圖標(biāo)
7、在資源標(biāo)簽中,點擊IDI_ICON1節(jié)點;
8、在屬性窗口,將文件名更改為Diamong.icon
9、將ID值更改為IDI_DIAMOND。
三、使用圖標(biāo)
為了支持圖標(biāo)操作,GDI+提供了Icon類,在應(yīng)用程序中使用圖標(biāo),可以首先使用Icon類的構(gòu)造函數(shù)來聲明一個指向圖標(biāo)的指針,如果圖標(biāo)存儲在文件中,使用的最簡單的構(gòu)造函數(shù)的語法如下:
public: Icon(String *filename);
對于這個構(gòu)造函數(shù),圖標(biāo)的文件名或路徑作為參數(shù)來傳遞,創(chuàng)建圖標(biāo)志以后,如果只想使用一個尺寸的版本,可以使用下面的構(gòu)造函數(shù)聲明變量。
public: Icon(Icon *original, Size size);
public: Icon(Icon *original, int width, int height);
初始化Icon變量后,如果你想獲得它的尺寸,你可以操作它的Width、Height或Size屬性。
正如上面已經(jīng)提到的,圖標(biāo)很多用途,例如,可以在控件中顯示它,為了這么作,可以調(diào)用Graphics::DrawIcon()方法,這個方法重載了兩個版本。
public: void DrawIcon(Icon *icon, Rectangle targetRect);
public: void DrawIcon(Icon *icon, int x, int y);
第一個版本準(zhǔn)許你說明圖標(biāo)的位置和尺寸,第二個版本只允許你定義圖標(biāo)的位置。
實例:使用圖標(biāo)
1、顯示窗體,然后雙擊窗體;
2、為了在標(biāo)題條上顯示圖標(biāo),按照下述代碼實現(xiàn)以下事件
private: System::Void Form1_Load(System::Object * sender, System::EventArgs * e)
{
Drawing::Icon *icoMain = new Drawing::Icon(S"Diamond.ico");
this->Icon = icoMain;
}
3、執(zhí)行應(yīng)用程序,效果如圖所示:
圖十四、標(biāo)題條上顯示圖標(biāo)
4、關(guān)閉窗體并返回開發(fā)環(huán)境。