Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3349528
  • 博文数量: 1450
  • 博客积分: 11163
  • 博客等级: 上将
  • 技术积分: 11101
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-25 14:40
文章分类

全部博文(1450)

文章存档

2017年(5)

2014年(2)

2013年(3)

2012年(35)

2011年(39)

2010年(88)

2009年(395)

2008年(382)

2007年(241)

2006年(246)

2005年(14)

分类: C/C++

2009-07-11 17:45:28

该程序只适用于 S60 3rd

第一步, 在 Icons_scalable_dc.mk 文件中添加生成多位图文件的语句。
如果使用 carbide.c++ 2.0的话可以自动生成。否则的话需要手机生成,格式如下:

ifeq (WINS,$(findstring WINS, $(PLATFORM)))
ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
else
ZDIR=$(EPOCROOT)epoc32\data\z
endif

TARGETDIR=$(ZDIR)\resource\apps
ICONTARGETFILENAME=$(TARGETDIR)\MyBitMap_0xE3F4C03A.mif

ICONDIR=..\gfx


RESOURCE : $(ICONTARGETFILENAME)

$(ICONTARGETFILENAME): \
$(ICONDIR)\qgn_menu_MyBitMap.svg \
..\bitmaps\1.bmp \
..\bitmaps\2.bmp \
..\bitmaps\3.bmp
mifconv $(ICONTARGETFILENAME)  \
/H$(EPOCROOT)epoc32\include\MyBitMap_0xE3F4C03A.mbg  \
/c32 $(ICONDIR)\qgn_menu_MyBitMap.svg  \
/c8 ..\bitmaps\1.bmp  \
..\bitmaps\2.bmp  \
..\bitmaps\3.bmp

注意:上边的"\" 代表连字符,意思是 $(ICONDIR)\qgn_menu_MyBitMap.svg \
..\bitmaps\1.bmp \
..\bitmaps\2.bmp \
..\bitmaps\3.bmp
这几行,是连在一起的,同在一行写的意思是一样的。

mifconv 是生成多位图文件的工具,它前面必须是一个 TAB 键

第二步,编程加载图片和画图
  
  1.类中的声明;
    private: //data
  CFbsBitmap* iBitMap;

 public :
  void LoadBitmap();

  2.实现:
   void LoadBitmap()
{
 
 iBitMap=new (ELeave)CFbsBitmap();
 _LIT(KMBMFILE,"\\system\\apps\\Multi\\Multi.mbm");
 TFileName file(KMBMFILE);
// TFilename fname = _L("Multi.mbm");
 User::LeaveIfError(CompleteWithAppPath(file));
 User::LeaveIfError(iBitMap->Load(file,EMbmMultiVideo));
 
}

在ConstructL()中
    CreateWindowL();
后添加
 LoadBitmap();
到这里,就已经加载图片了


在Draw中添加
 
 gc.Clear();
 TPoint topLeft(20,20);
 gc.BitBlt(topLeft,iBitMap);

图片就显示出来了

第四步,打包
打包的时候要注意将mbm文件加到包里面

"C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\data\Z\system\APPS\MULTI\Multi.mbm"           -"!:\system\apps\MULTI\Multi.mbm"
阅读(413) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~