上周都一直在调试模块中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类的作者做到了这些,我也不至于浪费这么多时间在这个小问题上,我们的程序修养涵待提高阿....
自己做的的小站,喜欢网络小说、喜欢读书的朋友欢迎来转一转