使用Carbide.vs与VS.NET2003构建Symbian开发平台S60 平台(五)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android开发平台搭建”。
使用Carbide.vs与VS.NET2003构建Symbian开发平台-S60
平台(五)
5.2 创建登陆框
在这里我们要创建一个登陆框,用于生成用户名和密码的对话框,按照传统的Symbian OS C++开发,我们本来应该在HelloWorld.r 里定义资源,但是有了Carbide.vs后我们却可以利用 Carbide.vs提供的功能非常方便地生成我们所要的资源,请打开 HelloWorld.r 定位到文件的最后,点击右键->Add Fragment 将会出现Carbide.vs提供的生成资源窗口,在Template 处选择 S60 Multiline query dialog,在下方会出现此对话框的效果图,就是我们所要的登陆框样子,按下一步,指定一个比较有效的名字,r_login_query,最后按Finish生成资源,你将会发现HelloWorld.r多了几行内容,这就是r_login_query的资源定义。RESOURCE DIALOG r_login_query {
flags = EGeneralQueryFlags;buttons = R_AVKON_SOFTKEYS_OK_CANCEL;items = {
DLG_LINE {
type = EAknCtMultilineQuery;
id = EMultilineFirstLine;
control = AVKON_DATA_QUERY {
layout = EMultiDataFirstEdwin;
label = “Username:”;
control = EDWIN { maxlength = 8;};
};
},DLG_LINE {
type = EAknCtMultilineQuery;
id = EMultilineSecondLine;
control = AVKON_DATA_QUERY {
layout = EMultiDataSecondSecEd;
label = “Paword:”;
control = SECRETED { num_letters = 8;};
};
} };} 为了要让程序更通用,本地化起来,我们有必要将UserName与Paword的值定义到.loc文件中,打开HelloWorld.loc文件,加入以下定义:
#define qtn_username “UserName:” #define qtn_paword “Paword:”
接下来我们来编写代码让这个登陆框显示出来,请打开HelloWorldView.h 先加下以下文件的引用
#include #include #include
#include “HelloWorld.hrh” 再加入处理函数的声明
void HandleLoginL();接着打开HelloWorld.loc 我们还要定义一些要显示的文本
#define qtn_login_succe “Congretulation You Have Loged in” #define qtn_login_fail “Sorry you have the wrong username or paword” #define qtn_login_cancel “You have canceled the login” 分别定义了登陆成功,登陆失败,与取消登陆的三种显示文本
打开HelloWorld.r文件,加入资源定义
RESOURCE TBUF r_login_succe { buf = qtn_login_succe;} RESOURCE TBUF r_login_fail { buf = qtn_login_fail;} RESOURCE TBUF r_login_cancel { buf = qtn_login_cancel;} 这样我们就能在程序中动态装入这些资源了,继续打开HelloWorldView.cpp文件,实现HandleLoginL函数的定义
void CHelloWorldView::HandleLoginL(){
_LIT(KCorrectLogin,“bention”);//定义正确的用户名
_LIT(KCorrectPwd,“123456”);//定义正确的密码
//显示对话框
TBuf username(_L(“”));
TBuf paword(_L(“”));
CAknMultiLineDataQueryDialog* dialog=CAknMultiLineDataQueryDialog::NewL(username,paword);//声明登陆对话框对象
if(dialog->ExecuteLD(R_LOGIN_QUERY)){//调用登陆对话框
if(username.Compare(KCorrectLogin)==0 && paword.Compare(KCorrectPwd)==0){
//登陆成功
CAknConfirmationNote* note = new(ELeave)CAknConfirmationNote();//定义一个信息提示框
HBufC* notePrompt=StringLoader::LoadLC(R_LOGIN_SUCCESS);//装载R_LOGIN_SUCCESS文本资源,以显示登陆成功信息
note->ExecuteLD(*notePrompt);//打开对话框
CleanupStack::PopAndDestroy(notePrompt);
}
else {
//登陆失败
CAknErrorNote* note = new(ELeave)CAknErrorNote();//定义一个错误提示框
HBufC*
notePrompt=StringLoader::LoadLC(R_LOGIN_FAIL);//装载R_LOGIN_FAIL文本资源,以显示登陆失败信息
note->ExecuteLD(*notePrompt);
CleanupStack::PopAndDestroy(notePrompt);
} } else {
//取消登陆
CAknWarningNote* note = new(ELeave)CAknWarningNote();//定义一个警告提示框
HBufC* notePrompt=StringLoader::LoadLC(R_LOGIN_CANCEL);//装载R_LOGIN_CANCEL文本资源,以显示取消登陆警告信息
note->ExecuteLD(*notePrompt);
CleanupStack::PopAndDestroy(notePrompt);
} } 接下去我们还差啥?就差把HandleLoginL放在处理菜单命令的函数中了,定位到HandleCommandL 中,HandleCommandL 是用来专门处理事件的,我们在switch结构中加入
case EHelloWorldCmdLogin:
{
HandleLoginL();
break;
} 其中的EHelloWorldCmdLogin 就是我们的登陆按钮啦,这样就实现了当我们点击了Login按钮后就会调用HandleLoginL去做相应的处理。
游戏开发平台(游戏引擎)介绍:游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具......
投融资平台构建——打造亚太一流的投融资服务平台(内部讨论)1、运营公司:汉德联合(北京)国际投资顾问有限公司(待定)2、运营平台(要素):(1)自主控制的首席运营平台:亚太投融资官方网定位:......
南溪县属比较典型的农业县,农村人才资源较为丰富,搞农村人才开发潜力巨大,意义深远。从2000年起,县委、县政府深入调查研究,制定开发计划,出台配套文件,确立了“试点引路,步步推进,健......
南溪县属比较典型的农业县,农村人才资源较为丰富,搞农村人才开发潜力巨大,意义深远。从2000年起,县委、县政府深入调查研究,制定开发计划,出台配套文件,确立了“试点引路,步步推进,健......
南溪县属比较典型的农业县,农村人才资源较为丰富,搞农村人才开发潜力巨大,意义深远。从2000年起,县委、县政府深入调查研究,制定开发计划,出台配套文件,确立了“试点引路,步步推进,健......