📄 samplecontainer.h
字号:
/*
* ============================================================================
* Name : CSampleContainer from SampleContainer.h
* Part of : Sample
* Created : 2005-09-27 by
* Description:
* Declares container control for application.
* Version :
* Copyright:
* ============================================================================
*/
#ifndef SAMPLECONTAINER_H
#define SAMPLECONTAINER_H
// INCLUDES
#include <coecntrl.h>
#include "coemain.h" // MCoeForegroundObserver
const int SCREEN_WIDTH = 176;
const int SCREEN_HEIGHT = 208;
// FORWARD DECLARATIONS
class CEikLabel; // for example labels
// CLASS DECLARATION
/**
* CSampleContainer container control class.
*
*/
class CSampleContainer : public CCoeControl, MDirectScreenAccess, MCoeForegroundObserver
{
public: // Constructors and destructor
enum TMbmImages
{
EMbmImagesImage1,
EMbmImagesImage2,
EMbmImagesImage2_mask
};
void ConstructL(const TRect& aRect);
~CSampleContainer();
TInt CountComponentControls() const;
CCoeControl* ComponentControl(TInt aIndex) const;
void Draw(const TRect& aRect) const;
private:
void InitGDI();
///周期回调函数
static TInt PeriodicCallBack(TAny *pAny);
///周期回调函数具体实现即游戏主循环
void GameCycle();
// 继承 MDirectScreenAccess
void AbortNow(RDirectScreenAccess::TTerminationReasons aReason);
void Restart(RDirectScreenAccess::TTerminationReasons aReason);
// 继承 MCoeForegroundObserver
void HandleGainingForeground();
void HandleLosingForeground();
///处理来电,前后台切换等事件的实现函数
void AbortNowImpl();
void StartL();
void RestartImpl();
// 重置背景表面数据头指针
void ResetBackSurfDataPtr();
// 加载位图
CFbsBitmap* CreateBitmapLC(const TDesC& aFileName,TInt aId);
// 更新数据
void Update();
// 重置GC
void PartialReset(CFbsBitGc& aGc) const;
private:
CFbsBitmap* m_pBackSurface; // 背景表面
CFbsBitGc* m_pBackGc; // 设备环境
CFbsBitmapDevice* m_pBackDevice; // 图形设备
TBitmapUtil* m_pBmpUtil; // TBitmapUtil实例
TUint16* m_pBackSurfaceData; // 背景平面内存入口地址
TBool m_bAbort; // 程序当前状态,是否是abort状态
TBool m_bGainingForeground; // 程序当前是否是前台
CFbsBitGc* m_pGc; // m_pDSA->Gc()
CPeriodic* m_pPeriodic; // 周期类
CDirectScreenAccess* m_pDSA; // 直接访屏类
CFbsBitmap* m_pBitmap_Ball; // 红球图片
CFbsBitmap* m_pBitmap_Background; // 背景图片
CFbsBitmap* m_pBitmap_Ball_Mask; // 红球的蒙版位图
TPoint m_iBallPos; // 球位置
int m_iXVelocity; // X方向速度
};
#endif
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -