上週都一直在調試模塊中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類的作者做到了這些,我也不至於浪費這麼多時間在這個小問題上,我們的程序修養涵待提高阿....
自己做的的小站,喜歡網絡小說、喜歡讀書的朋友歡迎來轉一轉