- 浏览: 198979 次
- 性别:
- 来自: 上海
最新评论
-
hao3721:
dsfasd
ehcache 使用 -
nihaokid:
方法是不会存在在对象内存中的,它存在于方法区,建议看看jvm的 ...
Java 深层理解 父类引用指向子类对象 -
vissalan:
有一点没看明白Father f1 = (Father)s;这时 ...
Java 深层理解 父类引用指向子类对象 -
咖啡舞者:
非常感谢这种分享精神.
在BREW中实现自己的GUI(8)-IWEB的封装 -
咖啡舞者:
这是创建的代码。
在设备上调的。
界面在手机和模拟器上显示的差异
文章列表
brew中对文件操作需要用到的API有:IFileMgr,IFile。IFileMgr用于创建实例,创建、打开文件;IFile负责读、写。
本例子包含以下功能(对txt文件): 1.检查文件是否存在,若存在,打开;不存在,创建。 2.写入信息 ...
- 2009-04-24 16:05
- 浏览 2278
- 评论(1)
高通告诫我们:程序一定要多多在手机上调试。
刚入门时,觉得模拟器是个好东西,显示逼真,想调就调。逐渐地,我发现,在模拟器上调试好的程序,在手机上并不一定能按预计运行。 反差最大的莫过于界面,第一次把程序拷到手机上,期望很大,也很自信,结果——惨不忍睹。
以下是我给大家的一些建议:
1.显示中文时,不要直接在屏幕上打印,把中文文字放在资源(bar)文件里。 //在屏幕上直接打印中文,在手机上会变成乱码 //资源文件便于修改,同时提高程序的可移植性 //修改brx文件后,要重新编译生成新的bar
2.显示文字时,不要固定行高,根据屏幕行 ...
- 2009-04-24 16:04
- 浏览 1754
- 评论(2)
今天和老总参加了一个招聘会,回来帮公司筛选简历,感受颇多!我所在的是一家大型企业。从收到的简历数量可以看出来, 两个小时不到,收到1300份简历,要从中选出100份进行笔试。比例:13选1
要知道,现在有800多万大学生在找工作,每个职位的竞争者最少也要有好几十人,哪个人事主管会仔细看每个人的简历?可以告诉大家,每封简历在筛选人眼前停留的时间最多不超过15秒,我们一个比较过分的老总甚至5秒决定一份简历。不是说不重视,实在是看不过来。如果每封都看得那么仔细,我们都不用干活了。
我通过下午的筛选简历,觉得有必要跟在找工作的朋友们说说一些需要注意的地方。彻彻底底都是我今天的实际感受。
...
- 2009-04-24 16:03
- 浏览 1108
- 评论(0)
如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧,比起所学的课堂课程来,它毫不逊色! 1.买个闹钟,以便按时叫醒 ...
- 2009-04-16 16:28
- 浏览 759
- 评论(0)
封装IWeb其实并不算是GUI的范畴,但是一并说了罢。在BREW中实现网络访问有两个选择:ISocket和IWeb,我是比较倾向于使用IWeb的,只要你不是要做一个长连接。因为服务端程序比较容易做,可以直接使用现成的WEB服务器,我们不再需要自己处理并发、缓存等网络服务必须要考虑的东西。使用IWeb并非只能处理HTML的页面,事实上我们完全可以拿它来做文件下载、提交信息(如下载报告)之类的管理。也并非IWeb只能与IHtmlViewer合并使用,我们完全可以将一个IMenuCtl的信息打成二进制包使用IWeb下载并用IMenuCtl来展示,也就是说把它当成一个ISocket一样来使用。首先我们需 ...
- 2009-04-13 17:43
- 浏览 2052
- 评论(3)
今天讨论关于GUI的另一个话题:如何在两个界面切换中表现出比较炫一点的效果,比如渐变、缩放等等。同样我们还是用组件的方式来做。IGSlider,负责管理两个IControl切换的动态效果,它的使用比较简单:
static void loadMenu(DisplayFavt * pMe,uint16 wParam)...{ TItemData *pData; IControl * p1,*p2; uint16 style; pData
- 2009-04-13 17:41
- 浏览 1775
- 评论(0)
还有一个常用的UI控件是单选框与复选框。可惜BREW也不提供,所以,只能自己做一个了。先看一下每个选项的结构定义,我们用图片来做那个选中和未选中的显示,这样才能做出更多更美观的界面效果,所以在结构中有两个成员pCkImage和pNrImage,同时,isSelected用来记录此项是否被选中:
typedef struct ...{ int nItemID; AECHAR * pText; IImage * pCkImage; IImage
- 2009-04-13 17:40
- 浏览 1566
- 评论(0)
前面做IGStatic时我们用到了一个滚动条组件IGScrollBar,现在说说它的实现方法,它的结构很简单:
struct _IGScrollBar ...{ const AEEVTBL(IGScrollBar) * pvt; uint32 m_nRefs; IShell *m_pIShell; IDisplay *m_pIDisplay; IModule
- 2009-04-13 17:38
- 浏览 1291
- 评论(0)
BREW中的IStatic可以方便地显示一个文本,但是它没有背景不能滚动,其实并不方便,所以我们也自己做一个吧。首先,同样是定义它的数据结构如下:
struct _IGStatic ...{ const AEEVTBL(IGStatic) * pvt; uint32 m_nRefs; IShell *m_pIShell; IDisplay *m_pIDisplay;
- 2009-04-13 17:37
- 浏览 1610
- 评论(0)
有时如果我们在应用中需要提供一个滚动的信息提示条(类似于页面上的跑马灯marquee),其实也很容易做到,类似于我们前面做的菜单,下面我们也讨论一下吧。跑马灯包括的数据结构如下:
struct _IGMarquee ...{ const AEEVTBL(IGMarquee) * pvt; uint32 m_nRefs; IShell *m_pIShell; IDisplay *m_pIDisplay;
- 2009-04-13 17:37
- 浏览 1681
- 评论(0)
同样是定义一下几个实体结构:
//自定义菜单项typedef struct...{ IImage * pImage; // Image uint16 wItemID; uint32 dwData;}
- 2009-04-13 17:35
- 浏览 1295
- 评论(0)
要实现的菜单比较简单,只支持列表视图,也就是IMenuCtl中的AEECLSID_MENUCTL 模式。但是我们需要考虑两个要求:1.菜单需要一个背景图,并且在每一个选中项的背景不仅仅是简单地填充色,而应该是一个图片(这样我们就可以方便地实现渐变、光晕、立体等效果了)。2.它应该在调用接口方面与原有的IMenuCtl基本一致,这样便于我们移植原来的代码。首先,在h文件中对菜单各个实体先做个定义如下:
//自定义菜单项typedef struct...{ const AECHAR * pText; // Text IImage
- 2009-04-13 17:34
- 浏览 2235
- 评论(0)
编了12年的程序,国内国外四处奔波,从“三五个人,十来条枪”的小公司里的程序员一直做到500强企业的系统架构设计师、部门负责人,真是很多感慨。看到院子里大家热火朝天地讨论程序员的年龄和职业通道问题,终于也忍 ...
- 2009-04-07 17:47
- 浏览 1281
- 评论(0)
第1层 菜鸟
第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者JavaScript,...,均可入门迈进这层。
在这层上,中国 ...
- 2009-04-07 17:38
- 浏览 800
- 评论(0)