我的第一个程序,创建和显示位图

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

注意在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 是一个资源文件记录这些图片的顺序的枚举.

创建image的两种途径:

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();

gc.BitBlt(Rect().iTl,iOffScreenBitmap);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航