關於圖片顯示類與GDI經歷的一次弱智錯誤

上週都一直在調試模塊中custom control控件顯示圖片的小錯誤,已經有成熟的圖片瀏覽、顯示類CPicViewer,其使用要引用包含GDIplus.dll,最初對此類的使用無非是看懂其調用的接口函數,我查閱了以前老大和同事對此類的使用方法,便按照他門的思路走了一遍,

 

先對窗口加上客戶區控制變量 m_ctlPic;

再在窗口的初始化上加上CPicViewer的顯示圖片的接口函數調用:

VOID ShowPicFile(LPCTSTR lpPicFilename);

m_ctlPic.ShowPicFile("photo.bmp");  //顯示默認圖片

 

 

奇怪的是,窗口初始化後,設想的圖片並沒有顯示出來,本該顯示圖片的區域一片灰白,此後開始了一遍遍的檢查、測試,對比別人的使用方法,未果,鬱悶,於是拋開這個做起他的了

 

無奈這個東西一直卡着,困擾了好幾天一直未解決,今天請老大幫助調試,問題終於解決了:

在於 GDIplus沒有初始化

 

先在stdafx.h文件里加上gdiplus頭文件引用

   #include "gdiplus.h"        // GDI

 

再在項目的APP所在的.h文件裏聲明變量

   public:
       ULONG_PTR   gdiplusToken;

最後在對應的.cpp作初始化:

   // GDI初始化
 Gdiplus::GdiplusStartupInput gdiplusStartupInput;
 Gdiplus::GdiplusStartup(  &gdiplusToken, &gdiplusStartupInput, NULL);

 

當然不要忘記在項目屬性鏈接里加上GDIplus.lib和相應的.dll文件的鏈接引用

 

經此失敗的得出以下教訓:

1,一般一些成熟的類和控件的使用,都要注意其使用方法,一般要先初始化再使用,其初始化時一定要其實用前提的類的初始化,這也不可以缺少,以防止出錯;

2,在書寫類的說明時一定要標示清楚此類的使用方法、前提、=調用說明、示例等,修能一個良好的習慣,顯然,如果CPicViewer類的作者做到了這些,我也不至於浪費這麼多時間在這個小問題上,我們的程序修養涵待提高阿....


自己做的的小站,喜歡網絡小說、喜歡讀書的朋友歡迎來轉一轉
小說夜讀

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章