开发 Symbian 系统上的俄罗斯方块实例
2010-02-22 23:39:00 来源:WEB开发网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类。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接