您的位置:首页 > 其它

Symbian学习笔记之导入Bmp图片

2009-08-26 15:33 465 查看
在Symbian导入Bmp图片应该是简单的事,网上也有介绍,不知道是不是我的SDK是3rd Edition SDK的,遇到了些问题,搞了好久,终于被我搞出来了。下面分享下学习的经验:

1.在Carbide.c++打开group下面的 工程名.mmp 文件,选择 Sources栏,选择右边的 Bitmaps,如果下面没有任何mbm文件,就添加一个;按下Default按钮,他会自动生成mbm文件的路径,再选择Add From Filesystem,然后引导到你的.bmp文件的目录下,他会帮你把你的bmp文件拷贝到工程的gfx文件下。)

2.重建你的工程,你会发现在mmp文件下多了以下几行代码:

START BITMAP Test.mbm
TARGETPATH resource/apps
HEADER
SOURCEPATH ../gfx
SOURCE c24 BK2.bmp
END

在C:/Symbian/9.1/S60_3rd_MR/Epoc32/include目录下会多出了一个Test.mbg文件

enum TMbmTest
{
EMbmTestBk2
};


在文件中EMbmTestBk2就是你图片资源的ID号。

3.到这一步你的资源已经载入完毕,现在开始写显示代码

在CTestAppView.C中加入头文件

#include "Test.mbg"
#include <fbs.h>
#include <AknUtils.h>

4.加入动态链接库fbscli.Dll

在mmp文件下点击Libraries,点击Add。

5.在Draw函数中加入

_LIT(KMBMFILE,"Z://resource//app//Test.mbm" );
void CTestAppView::Draw(const TRect& /*aRect*/) const
{
.....
CFbsBitmap* iBitMap = new (ELeave)CFbsBitmap();

TFileName file(KMBMFILE);
// TFilename fname = _L("Test.mbm");
CleanupStack::PushL(iBitMap);
User::LeaveIfError(CompleteWithAppPath(file));
User::LeaveIfError(iBitMap->Load(file,EMbmTestBk2));

CleanupStack::Pop(iBitMap);

// Clears the screen
gc.Clear(drawRect);

TPoint topLeft(0,0);
gc.BitBlt(topLeft,iBitMap);
delete iBitMap;
}


注意:

BitBlt()函数必须在Clear()函数后调用,因为Clear函数起到清屏作用。



结束。。继续努力。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: