关于图片显示类与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类的作者做到了这些,我也不至于浪费这么多时间在这个小问题上,我们的程序修养涵待提高阿....


自己做的的小站,喜欢网络小说、喜欢读书的朋友欢迎来转一转
小说夜读

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值