![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Symbian
witchsnk
这个作者很懒,什么都没留下…
展开
-
从Carbide.c++产生SIS安装文件
1. 从Carbide.c++集成开发环境的右边的导航栏上的项目视图选择该项目2. 右击该项目,选折“属性”菜单项。3. 在属性窗口中选择“C/C++ Build text”条目。4. 从配置下拉菜单中选择ARM(当目标创建是ARM二进制时,Carbide.c++ 产生一个SIS文件)5. 点击工具设置面板,你将注意到一个属节点项上有一个“Create SIS (Installation File转载 2008-04-03 23:43:00 · 412 阅读 · 0 评论 -
16位图二次插值图像缩放
typedef char Int8;typedef unsigned char UInt8;typedef short Int16;typedef unsigned short UInt16;typedef long Int32;typedef unsigned long UInt32;//图像数转载 2009-09-21 16:13:00 · 696 阅读 · 0 评论 -
实现类似QQ中的自定义菜单
菜单需要两个类:1.CMenu: 菜单,相当于菜单的一个容器,框!2.CMenuItem:菜单项,也是我们滚动焦点来选中的菜单项,还可以相应事件/** Menu.h** Created on: 2009-4-14* Author: lming*/#ifndef MENU_H_#define MENU_H_#include "BaseContr转载 2009-09-10 21:39:00 · 755 阅读 · 0 评论 -
实现简单的lable控件
Lable 控件都是用来显示文字的。许多控件上的文字显示,我们都可以使用LABLE控件。所以这个控件是一个很基础很实用的控件。首先我们来 设计一下 这个控件!控件都用以下属性:1.是否有光标(是否可以获得焦点)2.是否可见3.控件在界面上的位置4.控件的外表(如何表现)既然是公用属性,我们可以定义一个控件的基类,代码如下:/** BaseControl.h** Created o转载 2009-09-10 22:09:00 · 802 阅读 · 0 评论 -
Symbian创建短信
今天研究了一下创建本地短信的问题。在SYMBIAN平台创建短信经常会遇到以下二个问题。1.创建完短信后不能回复。呵呵2.创建完短信后,短信详情的时间不对。通常在模拟器上会早8个小时,在真机上会晚8个小时。我们今天主要讨论第二个问题。呵呵。首先我做了如下的实验来验证为什么会晚8个小时,我把真机上的时区改成伦敦时区。再创建短信后。时间是对的。我晕。估计是因为我真机上的北京时间和伦敦相差8个小时的原因。转载 2009-09-10 22:08:00 · 333 阅读 · 0 评论 -
实现TreeView控件
需要如下几个类:1.CTreeView (最外面的框,或者叫容器)2.CTreeViewContainer(第二个容器)3.CTreeNode(节点)4.CTreeNodeItem(子节点)其他:其他需要的就是我们在前面提到的文本显示控件和一个图片显示控件。后面的代码我会加上/** TreeNode.h** Created on: 2009-7-15* Author转载 2009-09-10 22:00:00 · 271 阅读 · 0 评论 -
实现ListBox控件
首先,我们需要六个类:CListBox:它是我们看的最外面的一个框CControlContainer:它是一个容器类,所有的项都添加到这个类里面CListBoxItem:项(有可能每一项中有图片,文字等等)CTextLable:组成 项 的元素 文本显示控件CBar:滚动条的槽(或者叫*&*),不知道怎么叫了。呵呵!CArrows:滚动滑块箭头/** ListBox.cpp** C转载 2009-09-10 21:50:00 · 395 阅读 · 0 评论 -
symbian写日志文件
/////放进构造函数中RFileLogger fileLog;fileLog.Connect();fileLog.CreateLog(_L(”mobile”),_L(”plugin.log”),EFileLoggingModeAppend);///////放到要写入日志的函数中fileLog.Write(_L(”CMyPlayerDocument::OpenFileL was called!”)原创 2008-10-11 17:07:00 · 322 阅读 · 0 评论 -
symbian数据类型转换
1.串转换成数字TBuf16 buf(_L( “123″ ) );TLex lex( buf );TInt iNum;lex.Val( iNum );2.数字转换成串TBuf16 buf;TInt iNum = 20;buf.Format( _L( “%d” ) , iNum );3.将symbian串转换成char串char* p = NULL;TBuf8 buf( _L( “aaaaa” )原创 2008-10-11 17:07:00 · 187 阅读 · 0 评论 -
时间条控件制作简明教程
易智游戏中的时间条,格斗游戏中的血条,相信是大家在制作游戏当中经常遇到的元素. 现在用一简单的教程介绍如何用S60自定义控件完成它,该控件可以随意控制大小,控制时间长度. 该控件将用到,窗口,如何制作自定义,时间周期类等知识. 制作之前首先请大家看看 Nokia Forum 关于 自定义控件的原理和教程 CPeriodic 的类的使用可以参考sdk中 Devel转载 2008-04-03 23:41:00 · 194 阅读 · 0 评论 -
Symbian程序中的观察者模式
在这个站点上有很多关于Symbian程序外表的文章,很少有关于架构设计的观点。在以下的文中中,我介绍一下在Symbian应用程序中的观察者模式,我会用一些有意义的类名来代表整个Symbian程序的设计流程。在这个应用程序中,将告诉你在一个Symbian程序中如何使用 Engine和前台,UI接口,和用户直接的交互。在文章中,我已经给了一种解决的方案。在接下来的文章种,我将介绍另外一种方法,通过内嵌转载 2008-04-03 23:38:00 · 587 阅读 · 2 评论 -
容器控制方法
容器控制必须能够提供其包含控制的数量以及这些控制是什么的信息。框架利用这些信息去绘制容器。容器通过实现两种方法提供这些信息: 一个方法是 CountComponentControls(),该方法返回组件控制的数目; 另一个方法是ComponentControl(TInt aIndex),该方法通过索引返回控制。 例如, 在下面简单的列表框中:CODE:TInt CContainer转载 2008-04-03 23:55:00 · 189 阅读 · 0 评论 -
如何在运行时为S60程序提供多国语言支持
我准备示范,如何使应用程序在运行时支持多国语言。下面的例子中,我使用了3种语言:英语、法语和德语。修改MMP文件第一步是修改MMP文件。在MMP文件中你可以看到这样一行:CODE:LANG SC修改成:CODE:LANG 01 02 03创建3种语言文件我们将支持3种语言,英语、法语、德语,本地文件转载 2008-04-03 23:47:00 · 377 阅读 · 0 评论 -
S60系统中如何获得更多的错误信息
在S60第一版和第二版中:当应用程序崩溃时,大多数S60模拟器中都只能显示一个简单的“程序关闭”对话框,对于错误没有更多的详细信息。我们可以在SDK的安装目录的/epoc32/wins/c/system/bootdata 下创建一个ErrRD空文件,来获得更多错误信息(这个很多文章中都介绍过)。系统将附加崩溃的类别和代号信息在所提供的错误信息中,当一个不能操作的级别发生时,实际的代号在错误信息的圆转载 2008-04-03 23:57:00 · 246 阅读 · 0 评论 -
如何创建Sis文件
概叙SIS文件是一种标准,它是方便的发布Symbian 应用程序的方式:1. 最终用户可以利用Symbian 操作系统手机中所携带的安装程序或者从电脑的连通性软件也进行安装/卸载SIS包。2. SIS文件使用内嵌机制来部署共享资料库和应用升级。3. SIS文件格式紧密 (采用了zlib 压缩技术)SIS文件通过计算机中的makesis工具生成,在所有的C++ SDK中可以使用:[attach]32转载 2008-04-03 23:54:00 · 575 阅读 · 0 评论 -
创建MP3解码器 - 采用Symbian中MAD(MPEG音频解码库)用法
前段时间我在newlc.com写了为Series 60创建MP3播放器的程序。我收到了许多关于MP3解码并运用在Symbian上的邮件。这里采用Symbian中MAD(MPEG音频解码库)用法来解决问题。概叙因为Symbian 7.0中可以通过MMF在smartphones在播放MP3, 但如果你的手机不支持 MP3解码,或如果你想自己接收解码MP3。这里我将演示如何采用Symbian中的MAD(转载 2008-04-03 23:50:00 · 406 阅读 · 0 评论 -
创建Log文件调试Symbian程序
需要在手机上调试代码或跟踪执行过程?RFileLogger也许可以帮助你.这个class的功能非常强大而且很容易使用._首先声明一个文件日志的连接并且创建一个log文件[Copy to clipboard]CODE://打开日志文件服务的连接RFileLogger iLog;iLog.Connect();iLog.CreateLog(_L("MyLoggingDirectory")转载 2008-04-03 23:49:00 · 226 阅读 · 0 评论 -
在Symbian V9 中发送短消息
RSendAsMessage已经被引进到了Symbian V9中,它可以用C++很简单的发送,短消息(SMS)CODE:// Link against sendas2.lib#include #include ...// 和SendAS服务建立链接RSendAs saSrv;saSrv.Connect();CleanupClosePushL(saSrv); // 创建转载 2008-04-03 23:45:00 · 229 阅读 · 0 评论 -
如何在运行时为S60 3rd程序提供多国语言支持
这是一个最基本的多国语言支持程序,我已经将他从S60第2版写到了S60第三版. 你可以找到早期的第二版的文章: 《如何在运行时为S60程序提供多国语言支持》. 这篇文章已经讲得非常的清晰,所以我在这里不在做过多的解释。这个例程示范如何在运行时改变程序的语言。这里我使用了3种语言:英语、法语、和德语。你可以在文章的最末下载该文章的源代码例子注意:压缩文件种的SIS文件没有Symbian Signed转载 2008-04-03 23:48:00 · 451 阅读 · 3 评论 -
自定义 CAknMarkableListDialog
适用平台S60 3rd Edition问题描叙CAknMarkableListDialog 提供一个列表,它的项目可以用编辑键+选择键来标记。下面有一些技巧来自定义它的行为。1) 实现“select and exit”特性默认情况下,只有一种方式来退出 CAknMarkableListDialog,按取消或者转载 2008-04-04 00:02:00 · 298 阅读 · 0 评论 -
创建内嵌SIS文件的安装包
适用平台S60 3rd Edition, S60 3rd Edition, FP1概叙当使用内嵌的SIS安装包时,父SIS文件包应该也申明依赖内嵌的SIS文件,这是程序运行的必要条件。详细描叙内嵌一个SIS文件不能自动的创建依赖关系。没有依赖关系,当试图使用应用程序管理器移出内嵌组件时,系统将不警告用户。有依赖关系时,用户将看到以下警告:QUOTE:"Removal may stop ot转载 2008-04-04 00:01:00 · 319 阅读 · 0 评论 -
关于S60系列手机的最大震动时间
大家都知道,S60 2.0引进了振动API,在Symbian C++中,要使用这个API,需要在代码添加头文件vibractrl.h,并在MMP文件中添加vibractrl.lib,但有一点是用户设置里必须开启振动。楼主可以先看看vibractrl.h中相关类的说明。CODE://s60 2.0 has include vibrator Api,your should add th转载 2008-04-04 00:00:00 · 380 阅读 · 0 评论 -
同时创建GPRS和GSM连接
概叙第三方的S60程序可以同时提供GPRS和GSM通话适用平台S60 3rd Edition解决方案S60设备根据活动GSM通话时的GPRS能力分为3类:A类 能够同时使用链接GPRS服务和GSM服务(语音和短信)。这些设备现在主要包括:S60第三版的设备(Nokia N73/N80/N91/N93, Nokia E60/E61/E70等等)B类能够使用链接GPRS服务和GSM服务(语音和短信),转载 2008-04-03 23:56:00 · 312 阅读 · 0 评论 -
S60中绘制动态图片
概叙通过ICL (Image Converter Library)库里面的CImageDecoder,应用程序可以在他们的自定义UI中绘制动态图象。比如一个GIF文件。解决方案:ICL可以通过使用CImageDecoder::Convert()函数可以把动态图片的每一帧转换成CFbsBitmap位图。CImageDecoder::FrameCount() 返回图片的总帧数,CImageDecode转载 2008-04-03 23:56:00 · 248 阅读 · 0 评论 -
Symbian中动态改变 CBA 按钮
在Rss文件中添加以下代码:CODE:RESOURCE CBA r_yourapp_softkeys_options_open{buttons = { CBA_BUTTON { id=EAknSoftkeyOptions; txt = "Options"; }, CBA_BUTTON { id=EYourAppCmdOpenApp; txt = "Open"; } };}转载 2008-04-03 23:54:00 · 1597 阅读 · 2 评论 -
播放WAV文件
播放一个wav文件要比想象中容易很多,因为很多事情都交给了系统。在这个工程中CSoundPlayer实现了播放wav文件的必要步骤CODE:#include class CSoundPlayer: public CBase, public MMdaAudioPlayerCallback{public: static CSoundPlayer* NewL(const TDesC&转载 2008-04-03 23:52:00 · 256 阅读 · 0 评论 -
技巧:CCoeControl类中Draw()函数的调试
自定义控件往往通过重载CCoeControl:: Draw() 方法来实现它的填充。然而,当你单步调试代码的时候,每个指令没有立即显示到屏幕上,因为它是通过window服务实现的。庆幸的是,你可以改变它,你可以将每次画图都立即显示到屏幕上,添加这段代码到你的AppUi::ConstructL()中:转载 2008-04-03 23:51:00 · 265 阅读 · 0 评论