注意在mmp中添加用到的SOURCE及LIBRARY,以便编译和连接的时候用.
创建多重位图方法,在mmp中添加:
START BITMAP pic.mbm //标志创建mbm
TARGETPATH ../../../../wins/c/system/apps/map2 //mbm的存放位置
HEADER
SOURCEPATH ../aif //图片放的位置
SOURCE c12 back.bmp //0 //图片的名称
SOURCE c12 ball.bmp //1
SOURCE c12 ball_mask.bmp //2
END
然后在cmd中编译便在../../../../wins/c/system/apps/map2 中产生了pic.mbm这个东东便是多重位图,在include下产生了pic.mbg 是一个资源文件记录这些图片的顺序的枚举.
创建
1通过eikenv.h中定义的iEikonEnv(CEikonEnv
的静态对象),iEikonEnv->CreateBitmapL(const TDesC& aFileName, TInt aId),aFileNmae图片的路径及名称,aId在bitMap中的排位。
2
直接初始化CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();CFbsBitmap或CWsBitmap的对象,通过bitmap-〉Load(aFileName,aId);来装载。用CWsBitmap创建位图服务要比CFbsBitmap快。CwsBitmap继承于CFbsBitmap。
显示图片通过
CWindowGc& gc = SystemGc();
gc.BitBlt(const TPoint &aPos, const CFbsBitmap *aDevice);
来显示。
创建双缓冲的方法:
1
先创建一个屏幕大小的图片
CFbsBitmap* bitmap = new(ELeave) CFbsBitmap()
;
bitmap->Create(const TSize& aSizeInPixels,TDisplayMode aDispMode)
;
2
创建画笔
CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(CFbsBitmap* aFbsBitmap);
CFbsBitGc* graphicsContext = NULL
;
bitmapDevice.CreateContext(graphicsContext)
3
在创建的图片中画图
graphicsContext
->BitBlt(TPoint(0,0),iBackgroundImage);
4 显示在屏幕上
CWindowGc& gc = SystemGc();