大坡3D软件开发

自主操作系统和CPU--用软件来改变世界

第二人生的源码分析(九十八)LLIconCtrl实现图标按钮显示

在前面已经介绍过文字按键的实现,这里主要实现一个图标按钮的实现,如下图里右下角显示的喇叭显示和向上选择的按钮,都是图标显示类型的按钮。 先来看图标按钮类的继承关系,如下:class LLIconCtrl: public LLUICtrl由这里可以看到LLIconCtrl类是控件类,它可以显示在界面...

2008-06-30 21:17:00

阅读数 3016

评论数 0

第二人生的源码分析(九十七)LLSlider实现音量滑动条

由于第二人生是多媒体的程序,因此它有音乐播放和语言聊天,那么就得使用到一种滑动条来调整音量的大小,如下图所示: 那么这个音量滑动条是怎么样实现的呢?下面就来详细地分析它的实现代码,先来看看它的类继承关系,如下:class LLSlider : public LLUICtrlLLSlider类只继承...

2008-06-22 23:16:00

阅读数 5644

评论数 2

第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示

在第二生里,菜单是缺少不了的。菜单提供了简单层次关系的一种表达方式,方便表达复杂的层次关系,并且方便写说明书,方便售后服务人员的描述,方便培训。因此,在一个程序没有菜单,往往带来很多不方便的地方。登录界面的菜单如下图: 从上图可以看到File、Edit、Help几个菜单,那么它是怎么样实现的呢?下...

2008-06-20 23:12:00

阅读数 2665

评论数 0

第二人生的源码分析(九十五)LLCheckBoxCtrl类实现复选按钮

在第二人生的登录界面里,可以看到输入密码的下面有一个复选按钮,如下图所示:这个按钮在这里主要用来设置是否帮助用户保存密码在磁盘里的,这样可以使用户每次不用输入密码,就可以登录进去。那么这个按钮是怎么样实现的呢?现在就分析跟这个相关的代码,它的继承代码如下:class LLCheckBoxCtrl:...

2008-06-19 23:35:00

阅读数 3951

评论数 0

第二人生的源码分析(九十四)LLTextBox类实现文本显示

在登录的画面里,可以看到程序的版本显示,那么它是怎么样显示出来的呢?现在就来分析显示这个版本号的代码,其实它是由静态文本显示框LLTextBox来显示的。比如在登录时创建版本显示的代码如下: 这里就是创建静态文本框。#001 LLTextBox* version_text = LLUICtrlFa...

2008-06-18 23:04:00

阅读数 3405

评论数 0

第二人生的源码分析(九十三)LLComboBox类实现组合框

在第二人生里,从登录的界面可以看到一个组合框,就是选择不同服务器的组件,它就使用到组合框了。其实组合框是由按钮、滚动列表框和编辑框组成的。它的继承关系如下:class LLComboBox:    public LLUICtrl, public LLCtrlListInterface同样它也是一个...

2008-06-17 22:42:00

阅读数 2860

评论数 0

100元的C++软件开发培训班

 C++软件开发培训(2008-6-16) 1、培养目标l         程序设计入门,懂得怎么使用C++编写简单程序。l         掌握程序设计方法,领会面向过程、面向对象和模板的程序设计。l         熟练地使用C++解决问题。l         每个人看懂1000个例子源码。2...

2008-06-16 23:57:00

阅读数 15675

评论数 47

第二人生的源码分析(九十二)LLLineEditor实现编辑框

在基于GUI界面的软件交互时,最基本的输入就是编辑框了,比如下图里输入的用户名称和密码,在游戏界面的编辑框里输入文字是一个高技术难度的问题,因为Windows输入法调用,也是难点之一。 那么在第二人生里的用户名称和密码的编辑框是怎么样实现的呢?现在就来分析这部份的代码,它的类继承关系如下:clas...

2008-06-16 21:57:00

阅读数 3955

评论数 0

第二人生的源码分析(九十一)LLScrollListCtrl列表的详细绘制

从前面可以看到怎么样绘制滚动列表框的代码,但在那个函数里面还调用一个函数drawItems来详细地绘制列表项的,现在就来分析这个函数的代码,如下:#001 void LLScrollListCtrl::drawItems()#002 { 计算左上角显示的位置。#003    S32 x = mIt...

2008-06-15 21:04:00

阅读数 2964

评论数 0

第二人生的源码分析(九十)LLScrollListCtrl实现列表显示

在第二人生的UI显示里,滚动列表也使用比较多的,由于多项列表选择的情况下,使用滚动列表往往使用界面使用起来更方便实用。如下面的登录界面,就有使用到滚动列表的控件: 从上图里可以看到最右边使用到一个滚动列表来显示不同的服务器,这样方便用户选择不同的服务器登录。那这个滚动列表是怎么样实现的呢?接着下来...

2008-06-14 21:41:00

阅读数 2334

评论数 0

第二人生的源码分析(八十九)从XML里创建LLButton

在第二人生里,很多界面的创建是基于XML文件来创建,比如前面提到的登录界面。在一个界面里由很多类型组件组成的,这里就介绍其中最常用的组件是按钮组件了。比如登录界面的连接或者退出按钮,都是从XML里分析出按钮的类型,然后创建按钮的。下面就来分析一下LLButton的XML处理代码,如下:#001 L...

2008-06-13 22:25:00

阅读数 2030

评论数 0

第二人生的源码分析(八十八)LLButton类显示按钮的名称

前面介绍按钮可以显示在窗口里,以及这个类的声明,现在来仔细地分析一下它是怎么样实现名称显示的。在构造函数里先保存传送入来的名称,如下:#001    mUnselectedLabel = unselected_label;#002    mSelectedLabel = selected_labe...

2008-06-12 22:31:00

阅读数 3055

评论数 0

第二人生的源码分析(八十七)LLButton类实现按钮功能

在前面介绍了登录过程的界面里有一个退出按钮,如果当用户不想登录时,就可以随时按这个按钮退出登录的过程,它的界面如下面,那么这个按钮是怎么样实现的呢? 从上图右下角可以看到Quit按钮,它的功能实现是由类LLButton来实现的,这个类的声明如下:#001 class LLButton#002 : ...

2008-06-11 20:47:00

阅读数 2732

评论数 1

第二人生的源码分析(八十六)LLView类添加子窗口显示

前面已经介绍怎么样遍历子窗口显示,那么它的子窗口是怎么样添加到列表里的呢?下面就来仔细地分析这方面的代码,如下:#001 void LLView::addChild(LLView* child, S32 tab_group)#002 { 如果添加自己到子窗口里提示出错。#003    if (mP...

2008-06-10 21:20:00

阅读数 2360

评论数 0

第二人生的源码分析(八十五)LLView实现OpenGL窗口显示

由于OpenGL只是负责显示3D的内容,并没有相应的UI实现,因此第二人生里就采用类LLView来实现一个窗口的显示,在这个窗口里可以显示任何其它的窗口,达到递归显示窗口的内容。下面就来仔细地分析它的显示函数,如下:#001 void LLView::draw()#002 { 如果设置调试窗口显示...

2008-06-09 20:48:00

阅读数 3393

评论数 1

第二人生的源码分析(八十四)保存UI的界面布局

前面介绍都是怎么样创建UI界面,这显然是在程序启动时需要做的工作,但是当用户改变了界面的布局之后,或者添加一些显示界面之后,就需要把它们保存起来,以便用户所有的变化在程序关闭之后仍然保存起来,然后在程序再次启动之后再从XML文件加载出来。下面就来看看第二人生里这段代码的实现,如下:#001 S32...

2008-06-08 11:24:00

阅读数 2596

评论数 0

从2008高考人数想到的软件人才

今天无意间看到下面这段新闻报道:“2007年全国高考报名人数首次突破1000万,达到1010万;2008年,这个纪录将被再次刷新。在今天召开的2008年全国普通高校招生考试工作电视电话会议上,教育部部长周济表示,今年高考人数和录取人数都将进一步增加,组织管理工作压力大,社会环境日趋复杂,高校招生考...

2008-06-07 19:40:00

阅读数 16946

评论数 112

第二人生的源码分析(八十三)创建UI的菜单

从前面看到,不但窗口和显示板可以通过XML定制,而菜单也可以通过XML文件来定制的,那么菜单的定制又是怎样读取XML文件的呢?到底它又会产生什么样的对象来执行菜单呢?下面就来解决这两个问题,代码如下:#001 LLMenuGL *LLUICtrlFactory::buildMenu(const L...

2008-06-07 18:13:00

阅读数 2520

评论数 1

第二人生的源码分析(八十二)创建UI的浮动窗口(floater)

上一次介绍了显示板的创建,这里来介绍创建浮动窗口。浮动的窗口可以显示在显示板之上,并且可以放在显示窗口不同的位置,也就是方便用户布局这个窗口在那里显示,比如聊天窗口,就可以放大,并且调整到合适的位置。下面就来分析创建浮动窗口的代码,如下:#001 void LLUICtrlFactory::bui...

2008-06-06 21:00:00

阅读数 2077

评论数 1

第二人生的源码分析(八十一)创建UI的显示板(Panel)

在第二人生里,UI部分主要有三种大组件组成:显示板、浮动窗口、菜单。显示板是固定在窗口里面,上面可以放浮动的窗口。像登录的界面,就是一个显示板组成,那么它是怎么样实现的呢?现在就分析下面这段代码,如下:#001 BOOL LLUICtrlFactory::buildPanel(LLPanel* p...

2008-06-05 21:09:00

阅读数 3311

评论数 0

提示
确定要删除当前文章?
取消 删除