VC++.NET的GDI+入門之位圖和圖標

發表于:2007-05-25來源:作者:點擊數: 標簽:GDI+VC++.NET位圖圖標入門
位圖 位圖是用于在窗體上顯示圖片的圖形對象,它是各種場合下圖形對象常用的一種類型。例如,位圖可以作為窗體的背景,下面是用于某些 Windows 版本隨帶的彈球 游戲 圖: 圖一、彈球游戲圖 位圖也可以用來裝飾對話框來達到美學效果。下圖WordPerfect 2002安
 位圖

  位圖是用于在窗體上顯示圖片的圖形對象,它是各種場合下圖形對象常用的一種類型。例如,位圖可以作為窗體的背景,下面是用于某些Windows版本隨帶的彈球游戲圖:


圖一、彈球游戲圖

  位圖也可以用來裝飾對話框來達到美學效果。下圖WordPerfect 2002安裝程序界面上的位圖就顯示了這種效果。


圖二、帶有位圖的對話框效果圖

  位圖最常用的用法可能還是被作為工具條上的圖片。


圖三、帶有位圖的工具條

  一、創建一個位圖

  為了創建一個位圖,可以使用任何圖形應用程序,包括Windows安裝的畫筆程序。在Visual C++ .NET中,為了創建一個位圖,你可以在主菜單上點擊"Project -> Add Resource..."。


圖四、Visual C++ .NET中的添加資源對話框

  在添加資源對話框中,選擇位圖,并點擊new按鈕,一個新的以"BMP"為擴展名的文件將添加到工程腳本當中。這時候你可以自己進行設計位圖,直道滿意為止。


圖五、設計位圖實例

  實例:創建一個位圖

  1、生成一個新的窗體應用程序,命名為Resources1;

  2、右擊下面的圖片并單擊復制菜單;


圖六、資源圖片

  3、啟動微軟的畫筆程序,并將圖片復制到該程序。

  4、為了改變蝴蝶的方向,在畫筆程序中選擇"Image -> Flip/Rotate..."

  5、在"Flip and Rotate"對話框中,選擇水平單選框并點擊"OK"按鈕;


圖七、水平翻轉后的資源圖片

  6、將文件命名為"Butterfly.bmp",并將文件存儲在在當前工程文件夾中。

  7、返回Visual Studio開發環境。
 二、使用位圖

  為了支持位圖,GDI+提供了Bitmap類,Bitmap類是建立在抽象的Image類基礎上的,如果創建了一個位圖并將它存儲為一個文件,可以將文件的路徑傳遞給這個類的構造函數,如下所示:

clearcase/" target="_blank" >cc66" width="90%" align="center" bgcolor="#dadacf" border="1">
public: Bitmap(String *filename);

  一旦已經準備好了圖片,為了將它呈現給用戶,可以調用Graphics::DrawImage()方法。根據所有可能的需要,這個方法重載了很多版本,其中的一個版本使用如下的語法:

public: void DrawImage(Image *img, Point point);

  第一個參數是一個先前已經初始化了的位圖對象,第二個參數規定了圖片將畫在什么位置,這個位置對應于圖片的左上角。

  下面是一個例子代碼:

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、點擊窗體的空白區域,確定已經選擇了該窗體,在屬性窗口中選擇事件按鈕;

  2、為了顯示圖片,雙擊重畫區域,并輸入以下代碼:

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、執行上述代碼進行測試,。


圖九、代碼測試效果圖

  4、關閉窗體返回開發環境。
  圖標

  一、圖標

  與位圖一樣,位圖用來在窗體對象上顯示圖形,不同的是,位圖可以具有窗體所需要的任何尺寸,而圖標的尺寸是受到限制的。這是因為圖標在一個應用程序中扮演著不同的角色。

  圖標用來在窗體管理器和我的電腦中代表一個文件夾。


圖十、Windows下的各種圖標

  二、創建圖標

  為了創建一個圖標,可以再一次使用具有這種能力的應用程序。通常情況下,可以使用Visual Studio .NET來創建或設計一個圖標。為了這么做,在Visual Studio的主菜單上,點擊Project -> Resource…,在增加資源對話框中,選擇圖標,然后點擊NEW按鈕。

  當開始設計一個圖標時,呈現在你面前的是一個32X32像素的繪圖區域。這是作為大圖標顯示時的尺寸。這有一個例子來自于Visual Studio .NET中New File對話框中的模板列表:


圖十一、模板列表中標的對話框

  在某些情況下,你可能要允許用戶使用小圖標,它的尺寸是16X16像素,如下圖所示:


圖十二、小圖標

  為了使小圖標成為可能,可以關聯第二個圖標到一個32x32的圖標,你所使用的用來設計圖標的應用程序應該為你增添這第二個圖標提供了方便。在Visual Studio中,可以在顯示一個圖標時,點擊主菜單上的Image -> New Image Type...,然后選擇16x16, 256種顏色,然后選擇"OK"鍵。

  無論你是創建一個版本還是兩個版本的圖標,它門全都存儲在一個文件中,擴展名是.ico。

  實例:創建圖標

  1、在主菜單上,點擊Project -> Add Resource...;

  2、在添加資源對話框中,雙擊圖標;

  3、在圖像編輯工具條中,點擊Fill工具 ,右擊綠色區域將它變更為白色;

  4、在圖象編輯工具條中,點擊"LINE"按鈕 ;

  5、在顏色面板中選擇藍色;

  6、在空白的畫圖區域,通過鼠標拖、拉操作、選擇顏色等,繪制下圖(16X16圖標設計方法不再贅述);


圖十三、自畫的圖標

  7、在資源標簽中,點擊IDI_ICON1節點;

  8、在屬性窗口,將文件名更改為Diamong.icon

  9、將ID值更改為IDI_DIAMOND。
 三、使用圖標

  為了支持圖標操作,GDI+提供了Icon類,在應用程序中使用圖標,可以首先使用Icon類的構造函數來聲明一個指向圖標的指針,如果圖標存儲在文件中,使用的最簡單的構造函數的語法如下:

public: Icon(String *filename);

  對于這個構造函數,圖標的文件名或路徑作為參數來傳遞,創建圖標志以后,如果只想使用一個尺寸的版本,可以使用下面的構造函數聲明變量。

public: Icon(Icon *original, Size size);
public: Icon(Icon *original, int width, int height);

  初始化Icon變量后,如果你想獲得它的尺寸,你可以操作它的Width、Height或Size屬性。

  正如上面已經提到的,圖標很多用途,例如,可以在控件中顯示它,為了這么作,可以調用Graphics::DrawIcon()方法,這個方法重載了兩個版本。

public: void DrawIcon(Icon *icon, Rectangle targetRect);
public: void DrawIcon(Icon *icon, int x, int y);

  第一個版本準許你說明圖標的位置和尺寸,第二個版本只允許你定義圖標的位置。

  實例:使用圖標
  
  1、顯示窗體,然后雙擊窗體;

  2、為了在標題條上顯示圖標,按照下述代碼實現以下事件

private: System::Void Form1_Load(System::Object * sender, System::EventArgs * e)
{
Drawing::Icon *icoMain = new Drawing::Icon(S"Diamond.ico");
this->Icon = icoMain;
}

  3、執行應用程序,效果如圖所示:


圖十四、標題條上顯示圖標

  4、關閉窗體并返回開發環境。

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97