WEB开发网
开发学院手机开发Symbian 开发 开发 Symbian 系统上的俄罗斯方块实例 阅读

开发 Symbian 系统上的俄罗斯方块实例

 2010-02-22 23:39:00 来源:WEB开发网   
核心提示:static CS60TestDocument* NewLC(CEikApplication& aApp);~CS60TestDocument();CS60TestAppUi *iAppUi;public: // from CAknDocumentCEikAppUi* CreateAppUiL();private:vo

static CS60TestDocument* NewLC(CEikApplication& aApp);

~CS60TestDocument();

CS60TestAppUi *iAppUi;

public: // from CAknDocument

CEikAppUi* CreateAppUiL();

private:

void ConstructL();

CS60TestDocument(CEikApplication& aApp);

};要重载CreateAppUil,此函数是用来建立用户接口响应对象的,

CEikAppUi *CS60TestDocument::CreateAppUiL()

{

iAppUi=new(ELeave) CS60TestAppUi(this);

return iAppUi;

}

在我们的例子中这是由类CS60TestAppUi实现的,在该类中ConstructL函数首先调用BaseConstructL函数进行初始化,从资源中装载软键盘和菜单定义,

void CS60TestAppUi::ConstructL()

{

BaseConstructL();

iAppView=CS60TestAppView::NewL(ClientRect(), iDoc);

AddToStackL(iAppView);

}

接下来我们将创建类CS60TestAppView的对象,这个类是CCoeControl的继承类,

class CS60TestAppView : public CCoeControl

{

..........

}

CCoeControl对象将控制哪个在屏幕中描绘,我们的ClientRect()控制将填充状态栏与软键盘间的空间,把它改成ApplicationRect()将控制全屏,AddToStackL接受来自键盘的反应,AppUi对象同样接受来自菜单的反应,当用户选择了菜单命令HandleCommandL将调用相应的命令代码,将完成结束命令和"Hello"命令显示一段文本。

void CS60TestAppUi::HandleCommandL(TInt aCommand)

{

switch(aCommand)

{

case EEikCmdExit:

case EAknSoftkeyExit:

Exit();

break;

case ES60TestHell

{

_LIT(message, "Hello!");

CAknInformationNote *informationNote=new(ELeave) CAknInformationNote;

informationNote->ExecuteLD(message);

}

break;

default:

Panic(ES60TestBasicUi);

break;

}

}

Draw函数是我们在CS60TestAppView唯一重载的函数,它将当我们的视图需重画时被调用,在本例中我们将显示在(176*144)的区域中,定义字符串将用到TBuf类。

上一页  1 2 3 4 5 6 7  下一页

Tags:开发 Symbian

编辑录入:coldstar [复制链接] [打 印]
赞助商链接