程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 在對話框顯示圖片的多種方法(上)

在對話框顯示圖片的多種方法(上)

編輯:vc教程

我們先從簡單的開始吧.先分一個類:

(一) 非動態顯示圖片(即圖片先通過資源管理器載入,有一個固定ID)

(二) 動態載入圖片(即只需要在程序中指定圖片的路徑即可載入)

為方便說明,我們已經建好一個基於對話框的工程,名為Ttest.

對話框類為CTestDlg

(一)    非動態載入圖片.

方法1.先從最簡單的開始,用picture 控件來實現.

步驟:

先在資源裡Import一張圖片,ID為IDB_BITMAP2

然後在對話框上添加一個picture控件,右鍵點擊打開屬性,

將type下拉框選擇BITMAP,緊跟著下面就出現一個Image下拉框,

拉開就會看到所有已經載入好的圖片,

選擇你要的圖片.運行程序即可看到.

方法2.通過背景圖

同樣如上,先載入一張圖片,ID為IDB_BITMAP2

 TestDlg.h中

CBrush m_brBk;//在public中定義

TestDlg.cpp中 

在初始化函數OnInitDialog()中加入:

BOOL CTestDlg::OnInitDialog()

{

               CDialog::OnInitDialog();

CBitmap bmp;

bmp.LoadBitmap(IDB_BITMAP2);

m_brBk.CreatePatternBrush(&bmp);

bmp.DeleteObject();

.

.

.

         return TRUE;  // return TRUE  unless you set the focus to a control

}

在打開類向導,找到WM_CTLCOLOR消息,重載得對應函數OnCtlColor(),添加如下:

HBRUSH  CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

               HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);             

if (pWnd == this)

{

    return m_brBk;

}

       return hbr;

}

(二)    動態載入圖片.

方法3 圖像控件(本例用KoDak 圖像編輯控件)

1.    首先應該保證系統中有這個控件。注意,它不能單獨使用,必須和其他幾個控件(特別是Imgcmn.dll)一同使用。如果沒有,從別的機器上copy過來即可。這幾個文件是Imgadmin.ocx,Imgcmn.dll,Imgedit.ocx,Imgscan.ocx,Imgshl.dll,Imgthumb.ocx,Imgutil.dll,把它們copy到Windowssystem目錄下,然後用regsvr32.exe將它們分別注冊。

2.    打開工程,進入資源管理器,在對話框上單擊右鍵,單擊Insert Activex control… 選擇Kodak圖象編輯控件,大小任意。

3.    在對話框上選中該控件,為其添加變量:m_ctrlPicture。。

4.    在BOOL CTestDlg::OnInitDialog()添加如下:

BOOL CTestDlg::OnInitDialog()

{

     CDialog::OnInitDialog();

     m_ctrlPicture.SetImage("aa.jpg");  //保證圖像在工程目錄下,也可以寫絕對路徑

     m_ctrlPicture.Display();

 

.

;

;

     return TRUE;  // return TRUE unless you set the focus to a control

                   // EXCEPTION: OCX Property Pages should return FALSE

}

編譯運行就OK了,此種方法的好處就是可能針對多種圖像格式.

以上四種方法唯有KoDak可以支持多種圖像,其它的只支持BMP

如果讀者有興趣可以向我索要以上方法的全部例程.

信箱: [email protected]

應廣大朋友的建議,特將所有例程打包,放在以下地址供下載:

http://www.7forever.com/c3d/study/pictest.rar

其中,直接繪制的程序為對話框自適應圖片大小,不是文章中Static自適應大小

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved