对用资源生成的Form中的控件进行操作的问题。

zg351229063 2007-08-28 02:34:00
资源文件如下:
RESOURCE FORM r_aknexform_text_field_form
{
flags = EEikFormEditModeOnly | EEikFormUseDoubleSpacedFormat;
items =
{
DLG_LINE
{
type = EEikCtNumberEditor;
prompt = "Code";
id = 12340;
control = NUMBER_EDITOR
{
min = 0;
max = 99999;
};
},
DLG_LINE
{
type = EEikCtRichTextEditor;
prompt = "Name";
id = 12341;
control = RTXTED
{
flags = EAknEditorNumericInputMode;
avkon_flags = EAknEditorNumericInputMode;
width = qnn_aknexeditor_view_gtexted_width;
height = qnn_aknexeditor_view_gtexted_height;
numlines = qnn_aknexeditor_view_gtexted_numlines;
textlimit= qnn_aknexeditor_view_gtexted_textlimit;
fontcontrolflags = EGulFontControlAll;
fontnameflags = EGulNoSymbolFonts;
};
}
};
}

RESOURCE DIALOG r_demo_singlepage_dialog

{
flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | EEikDialogFlagCbaButtons | EEikDialogFlagWait;

buttons = R_AVKON_SOFTKEYS_OK_CANCEL;

// buttons = R_AVKON_SOFTKEYS_OPTIONS_BACK;
form = r_aknexform_text_field_form;
}

相关代码如下:
CAknForm* iEditForm = new (ELeave) CAknForm();
CleanupStack::PushL(iEditForm);

iEditForm->ExecuteLD( R_DEMO_SINGLEPAGE_DIALOG );


CEikEdwin* iName = static_cast<CEikEdwin*>(iEditForm->ControlOrNull(ECodeEdit));


// Get country's index.
TBuf<COUNTRY_CODE_LENGTH> iCode;
iName->GetText( iCode );
CEikonEnv::Static()->InfoMsg( iCode );


CleanupStack::Pop();

主要问题:
1. 运行到GetText时崩溃。
次要问题:
1. 本来是个Dialog可是,非要用CAknForm生成才显示正确,如果用CAknDialog生成就显示错误。
...全文
206 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyw 2007-08-30
  • 打赏
  • 举报
回复
你用什么版本?3rd FP1下有个OcrExample例子,很不错:
C:\Symbian\9.2\S60_3rd_FP1\S60Ex\OcrExample

你上面的代码可以移到SaveFormDataL中,参考:
TBool CLayoutForm::SaveFormDataL()
dyw 2007-08-30
  • 打赏
  • 举报
回复
检查调用方式,参考:
CLayoutForm::ExecuteFormLD

在Ui类的ConstructL函数中,变更:
BaseConstructL();

BaseConstructL(EAknEnableSkin);

若上述手段也无效,需再次描述出错的位置及相关代码。
zg351229063 2007-08-30
  • 打赏
  • 举报
回复
多谢!
不过,这个方法已经尝试过了,一样会崩溃,因为得到的指针并不为空。
dyw 2007-08-30
  • 打赏
  • 举报
回复
参考: 不要把if判断省略掉。
fieldText = static_cast<CAknPopupFieldText*>(ControlOrNull(EOCRExampleFormLayout));
if (fieldText) // 此处加if判断
{
...
}

zg351229063 2007-08-30
  • 打赏
  • 举报
回复
多谢dym指点,您告诉我的例子我看了,不过,好像不太能够解决我的问题。
原因为:
我在很多地方找了很多例子(当然这些例子都大同小异了),我找了一个比较具有代表性的。
我现在的问题是,我可以得到Form上的Edit的指针(当然,不是特别确定得到的指针没有问题)。
但是,我用得到的指针调用GetText时,程序就会崩溃,我实在不知道是为什么了。
我将GetText的调用放在了重载了的OkToExitL的函数中(因为我没找到可以自动调用SaveFormDataL的地方),当然,我也尝试过将GetText放在SaveFormDataL中,然后手动调用这个SaveFormDataL函数,不过,一样会崩溃。
实在苦恼!

希望能够得到dyw等高手的指点!
多谢了!
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
没有高手能帮忙吗?
高手在哪里?!
anel 2007-08-28
  • 打赏
  • 举报
回复
在你symbian安装目录下
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
Series60Ex是个什么东西?
是帮助文件吗?
(不好意思,我才学Symbian,如果大师能够提供些代码将不胜感激!)
anel 2007-08-28
  • 打赏
  • 举报
回复
Series60Ex\popupfield
Series60Ex\spane
Series60Ex\slider
anel 2007-08-28
  • 打赏
  • 举报
回复
哟...我也没用过CAknForm,只用过CAknDialog,也是过从example抄过来
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
如果我能够从其它地方找到就不麻烦大师了。
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
大师,您不能提供代码吗?
anel 2007-08-28
  • 打赏
  • 举报
回复
参参考
Series60Ex\form
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
那好,请问重载如何实现啊?
能给提供些代码吗?
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
还有一个很弱智的问题。
请问,在弹出我的对话框后,我该如何响应Ok和Cancel事件?


anel 2007-08-28
  • 打赏
  • 举报
回复
没试过,一般我会用重载
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
能不能提供一个不重载的方法啊?
又不是非重载不行。

多谢了!
anel 2007-08-28
  • 打赏
  • 举报
回复
重写有更多的灵活性 可以重写 OkToExitL
zg351229063 2007-08-28
  • 打赏
  • 举报
回复
我也想到了这个问题,不过,那该怎么写啊?
想过用重载实现,不过,我觉得重载能够实现的事情不用重载一样可以实现。
所以,希望能够提供一个不用重载实现的方法。

我是不是就不该调用ExecuteLD啊?

多谢了!
anel 2007-08-28
  • 打赏
  • 举报
回复
ExecuteLD之后
iEditForm被删除了
资源比较大,分成两部分上传。 第一部分 Visual C++ 2010开发与新特性   第1章 Visual C++ 2010开发环境简介 1   1.1 Visual C++ 2010简介 1   1.2 Visual C++ 2010下载安装指南 1   1.3 Visual C++ 2010主要特点与   1.3 新特性 3   1.4 Visual C++ 2010开发环境操作   1.4 指南 6   1.4.1 创建Visual C++应用程序 6   1.4.2 Visual C++ 2010菜单介绍 9   1.5 Visual C++ 2010 MFC简介 12   1.6 Visual C++ 2010 CLR简介 13   1.7 Visual C++ 2010 64位编程 14   1.8 支持新的C++语言标准 14   1.8.1 支持新的C++语言标准   1.8.1 (C++ 0x) 14   1.8.2 Lambda表达式 15   1.8.3 静态断言static_assert 17   1.8.4 auto关键字 18   1.8.5 右值引用 19   1.8.6 安全数据类型 22   1.8.7 移动构造 23   1.9 支持开发并行程序 26   1.9.1 运行库支持native代码 26   1.9.2 调试和分析工具 29   1.10 对MFC的增强 31   1.10.1 任务对话框CTaskDialog 31   1.10.2 重启管理器(Restart Manager)支持 33   1.10.3 支持新的用户界面风格 34   第2章 MFC应用程序框架 37   2.1 用MFC向导生成应用程序 37   2.1.1 生成的程序框架 37   2.1.2 生成的应用程序类型 43   2.1.3 向导生成工程文件简介 46   2.2 应用程序框架分析 46   2.2.1 框架简介 47   2.2.2 MFC应用程序运行流程 50   2.2.3 应用程序窗口 51   2.2.4 消息机制与消息循环 59   2.3 文档与视图 65   2.3.1 文档类结构分析 65   2.3.2 视图类结构分析 65   2.3.3 文档与视图的关系 67   2.3.4 SDI应用程序分析 69   2.3.5 MDI应用程序分析 69   2.4 工具栏与状态栏 69   2.4.1 工具栏 70   2.4.2 状态栏 78   2.5 MFC新功能——Office 2007   2.5.1 风格程序分析 85   2.6 MFC新功能——Visual Studio   2.6.1 风格程序分析 90   2.7 MFC新功能——Windows资源   2.7.1 管理器风格程序分析 98   2.8 应用程序框架类对象分析 100   2.8.1 视图类对文档类的调用 100   2.8.2 在框架类获得当前的文档类和视图类对象指针 101   2.8.3 获得应用程序类对象的指针 101   2.8.4 从应用类对象获得主框架类对象的指针 101   2.9 小结 102   第3章 Visual C++ 2010 MFC菜单编程 103   3.1 菜单编程 103   3.1.1 创建菜单 104   3.1.2 创建菜单热键 115   3.1.3 标记菜单 115   3.1.4 给菜单加入图标 119   3.1.5 禁用菜单 121   3.1.6 移除与加载菜单 127   3.2 菜单消息的传输机制 129   3.2.1 菜单消息的分类 129   3.2.2 菜单消息的传输路由 129   3.3 动态菜单操作 131   3.3.1 添加菜单 131   3.3.2 插入菜单 133   3.3.3 删除菜单 135   3.3.4 插入菜单的命令响应 136   3.3.5 修改菜单 137   3.4 小结 140   第4章 Visual C++ 2010 MFC对话框编程 141   4.1 对话框简介 141   4.1.1 对话框的控件简介 141   4.1.2 对话框的种类简介 149   4.1.3 设计对话框 150   4.2 创建与销毁对话框 153   4.2.1 模态对话框 153   4.2.2 非模式对话框 159   4.2.3 属性页对话框 163   4.3 消息对话框 173   4.4 通用对话框 175   4.4.1 文件打开对话框 176   4.4.2 文件保存对话框 178   4.4.3 颜色对话框 179   4.4.4 字体对话框 181   4.4.5 查找对话框 183   4.4.6 页面设置对话框 185   4.4.7 打印对话框 186   4.5 小结 187   第5章 Visual C++ 2010 MFC对话框控件 188   5.1 Visual C++ 2010 Button控件简介与开发 191   5.2 Visual C++ 2010 List Box 控件简介与开发 193   5.3 Visual C++ 2010 Com boBox控件简介与开发 195   5.3.1 创建扩展组合框控件 196   5.3.2 在扩展组合框控件使用   5.3.2 图像列表 197   5.3.3 设置各项的图像 197   5.3.4 处理扩展组合框控件的通知消息 198   5.4 Visual C++ 2010 List控件简介与开发 198   5.4.1 列表控件和列表视图 199   5.4.2 列表项和图像列表 199   5.4.3 回调项和回调屏蔽 200   5.4.4 创建列表控件 200   5.4.5 创建图像列表 201   5.4.6 向控件添加列(报表视图) 204   5.4.7 向控件添加项 205   5.4.8 在列表控件滚动、排列、   5.4.8 排序和查找 205   5.4.9 在列表控件实现工作区 205   5.4.10 处理列表控件的通知消息 206   5.4.11 更改列表控件样式 206   5.4.12 虚拟列表控件 207   5.4.13 列表控件的消息映射 209   5.4.14 列表控件的风格选项及表头设置 210   5.4.15 销毁列表控件 210   5.5 Visual C++ 2010 Edit控件简介与开发 211   5.6 Visual C++ 2010 Rich Edit控件简介与开发 213   5.6.1 Rich Edit控件的字符格式 215   5.6.2 Rich Edit控件的段落格式 215   5.6.3 Rich Edit控件的当前选定内容 215   5.6.4 Rich Edit控件的分词 216   5.6.5 Rich Edit控件的剪贴板操作 216   5.6.6 Rich Edit控件的流操作 216   5.6.7 Rich Edit控件的打印操作 216   5.6.8 无底的Rich Edit控件 217   5.6.9 来自Rich Edit控件的通知 217   5.7 Visual C++ 2010 Progress控件简介与开发 219   5.7.1 进度控件的样式 219   5.7.2 进度控件的设置 219   5.7.3 操作进度控件 220   5.8 Visual C++ 2010 Tree控件简介与开发 220   5.8.1 树控件样式 221   5.8.2 树控件父项和子项 221   5.8.3 树控件项位置 222   5.8.4 树控件项标签 222   5.8.5 树控件标签编辑 223   5.8.6 树控件项的状态 223   5.8.7 树控件图像列表 224   5.8.8 树控件项选择 224   5.8.9 树控件拖放操作 224   5.8.10 树控件项信息 225   5.8.11 树控件通知消息 225   5.9 Visual C++ 2010 DBgrid控件简介与开发 226   5.9.1 示例程序1 226   5.9.2 示例程序2 227   5.10 Visual C++ 2010 Rebar控件简介与开发 228   5.10.1 在Rebar控件使用图像列表 230   5.10.2 在Rebar控件使用对话栏 231   5.10.3 处理Rebar控件的通知消息 231   5.11 Visual C++ 2010 Timer控件简介与开发 232   5.12 Visual C++ 2010 Tab控件简介与开发 234   5.12.1 选项卡和选项卡控件属性 235   5.12.2 选项卡控件的使用方法 235   5.12.3 创建选项卡控件的方法 235   5.12.4 处理选项卡控件通知消息 236   5.12.5 CTabCtrl类简介 236   5.13 Visual C++ 2010 IP控件简介与开发 241   5.14 Visual C++ 2010 Picture控件简介与开发 241   5.15 Visual C++ 2010 Slider控件简介与开发 244   5.15.1 滑块控件样式 244   5.15.2 滑块控件成员函数 245   5.15.3 滑块控件通知消息 246   5.16 Visual C++ 2010 Scroll Bar控件简介与开发 246   5.17 Visual C++ 2010 Hot Key控件简介与开发 248   5.17.1 使用热键控件 248   5.17.2 设置热键 249   5.18 Visual C++ 2010 Animation控件简介与开发 249   5.18.1 使用动画控件 249   5.18.2 动画控件发送的通知 250   5.19 Visual C++ 2010 Spin控件简介与开发 250   5.19.1 数值调节钮的样式 250   5.19.2 数值调节钮成员函数 251   5.20 Visual C++ 2010 GroupBox控件简介与开发 251   5.21 Visual C++ 2010 Data Time Picker控件简介与开发 252   5.21.1 创建日期和时间选择器控件 253   5.21.2 访问嵌入的月历控件 253   5.21.3 在日期和时间选择器控件使用自定义格式字符串 254   5.21.4 在日期和时间选择器控件使用回调字段 254   5.21.5 处理日期和时间选择器控件的通知消息 256   5.22 Visual C++ 2010 Month Canlendar控件简介与开发 256   5.22.1 创建月历控件 257   5.22.2 处理月历控件的通知消息 257   5.22.3 设置月历控件的日状态 257   5.23 Visual C++ 2010 Custom控件简介与开发 258   5.23.1 使用MFC方法定制控件必备的几个基本概念 259   5.23.2 定制自定义控件的3种常见方法 260   5.24 Visual C++ 2010 SysLink控件简介与开发 260   5.25 Visual C++ 2010 Split Button控件简介与开发 261   5.26 Visual C++ 2010 Network Address控件简介与开发 262   5.27 Visual C++ 2010 Check Box控件简介与开发 262   5.28 Visual C++ 2010 Radio Button控件简介与开发 264   5.28.1 为单选按钮控件分组 264   5.28.2 获得被选的单选按钮的文本 264   5.29 Visual C++ 2010 MediaPlayer控件简介与开发 265   5.30 小结 266   第二部分 Visual C++ 2010下MFC开发   第6章 计算机测控系统概述 267   6.1 Visual C++ 2010 SDI开发简介 267   6.1.1 建立应用程序基本框架 267   6.1.2 处理视图 267   6.1.3 处理文档 271   6.1.4 串行化处理 274   6.1.5 SDI应用程序编程思路 275   6.2 Visual C++ 2010 MDI开发简介 277   6.2.1 多文档接口 277   6.2.2 生成程序 278   6.2.3 程序类、文件和代码 279   6.2.4 自定义资源 281   6.3 Visual C++ 2010 View开发 282   6.3.1 生成源文件 283   6.3.2 初始化视图类数据成员 283   6.3.3 加入消息处理功能 285   6.3.4 设计程序资源 290   6.3.5 定制MiniDraw窗口 292   6.3.6 程序清单 293   6.4 Visual C++ 2010 EditView开发 298   6.4.1 生成MiniEdit程序 299   6.4.2 修改程序菜单 300   6.4.3 编辑加速键 301   6.4.4 程序清单 303   6.5 Visual C++ 2010 FormView开发 306   6.5.1 自定义FormDemo程序 307   6.5.2 程序清单 314   6.6 Visual C++ 2010 ScrollView开发 319   6.6.1 加入滚动功能 319   6.6.2 坐标换算 319   6.6.3 限制图形大小 322   6.6.4 改变鼠标光标 325   6.7 Visual C++ 2010 HtmlEditView开发 328   6.8 Visual C++ 2010 HtmlView开发 331   6.9 Visual C++ 2010 ListView开发 335   6.10 Visual C++ 2010 RichEditView开发 335   6.11 VisualC++ 2010 TreeView开发 336   6.12 Visual C++ 2010 Office 2007风格文档视图开发框架 337   Visual C++ 2010 Visual Studio   6.13 2008风格文档视图开发框架 342   6.14 Visual C++ 2010 Windows资源管理器风格文档视图开发框架 346   6.15 小结 350   ……   第7章 VisualC++2010MFC应用程序界面与美化   第8章 VisualC++2010MFC文本与字体   第9章 VisualC++2010MFC图形图像编程   第10章 VisualC++2010MFC动态函数链接库   第11章 VisualC++2010MFCActiveX控件   第12章 VisualC++2010MFC文件与注册表操作   第13章 VisualC++2010MFC数据库开发   第14章 VisualC++2010MFC多线程程序设计   第15章 VisualC++2010MFC网络程序设计   第16章 VisualC++2010MFC进程通信   第三部分 VisualC++2010下MFC与CLR进行开发   第17章 VisualC++2010CLR开发基础   第18章 VisualC++2010CLRWindows窗口编程   第19章 VisualC++2010MFC与.NET交互编程   第四部分 发布VisualC++2010程序   第20章VisualC++2010应用程序部署   第五部分 基于Windows7平台用VisualC++2010开发   第21章 VisualC++2010基于Windows7新特性开发

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧