随笔分类 -  SOUI教程

摘要:SOUI 2.5.1.1开始支持线性布局(LinearLayout). 要在SOUI布局中使用线性布局, 需要在布局容器窗口里指定布局类型为vbox | hbox, (vbox为垂直线性布局, hbox为水平线性布局). 在指定布局类型后还可以为容器窗口指定gravity属性, 用来指定子窗口的默认 阅读全文
posted @ 2017-02-18 16:14 启程软件 阅读(3686) 评论(1) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2017-02-18 15:47 启程软件 阅读(1805) 评论(0) 推荐(0) 编辑
摘要:感谢网友"指尖"为SOUI开发的UiEditor, 目前该UI编辑器已经基本可用, 源代码在soui svn demos\uieditor. 下面是"指尖"提供的GIF动画教程. 大家快来膜拜"指尖", :) 阅读全文
posted @ 2016-10-27 15:00 启程软件 阅读(9182) 评论(6) 推荐(1) 编辑
摘要:概述 异步通知是客户端开发中常见的需求,比如在一个网络处理线程中要通知UI线程更新等等。 通常在Windows编程中,为了方便,我们一般会向UI线程的窗口句柄Post/Send一个窗口消息从而达到将非UI线程的事件切换到UI线程处理的目的。 在SOUI引入通知中心以前要在SOUI中处理非UI线程事件 阅读全文
posted @ 2016-07-04 23:27 启程软件 阅读(4288) 评论(0) 推荐(0) 编辑
摘要:在SOUI中,使用uires.idx这个文件来记录程序中使用的所有资源文件。 此外绘制对象(ISkinObj)则一般放在skin.xml中描述。 要向一个界面中增加一个新的图片,在没有uiresImporter之前,首先我们需要把新的图片资源增复制到uires下的某个目录下,然后在uires.idx 阅读全文
posted @ 2016-04-24 20:51 启程软件 阅读(2978) 评论(0) 推荐(1) 编辑
摘要:SOUI2.0之前,在SOUI中使用资源通常是直接使用这个资源的name(一个字符串)来引用。使用字符串的好处在于字符串能够表达这个资源的意义,因此使用字符串也是现代UI引擎常用的方式。 尽管直接使用字符串有意义明确的优点,它同样也有缺点: 1、字符串写错了,编译器不知道。这可能导致一些很难发现的B 阅读全文
posted @ 2016-02-22 16:09 启程软件 阅读(3192) 评论(2) 推荐(0) 编辑
摘要:SOUI中通过pos的标志如:[, {, }, ],这4个标志可以相对于前一个及后一个兄弟窗口,但是有时候希望相对于不是前后窗口的兄弟窗口,比如一个通过一个中心窗口同时定义它的上下左右4个窗口,这个时候应该如何处理? 其实SOUI是支持相对于任意一个兄弟窗口的,但是定义方法有点复杂,所以在之前的博客 阅读全文
posted @ 2016-01-27 19:57 启程软件 阅读(3117) 评论(1) 推荐(0) 编辑
摘要:如果你想使用SOUI最好有点WTL基础,一点点就行了。SOUI不依赖于WTL,但是SOUI的编码风格基本和WTL一样的:SOUI抄袭了WTL的消息处理形式,SOUI的事件处理也是模仿了WTL的消息映射宏。抄袭WTL的消息处理形式表现在两个层次:1、在SWindow及其派生类中处理消息使用WTL基本一... 阅读全文
posted @ 2016-01-04 22:21 启程软件 阅读(3543) 评论(0) 推荐(0) 编辑
摘要:如果SOUI的宿主窗口没有包含子窗口,直接使用窗口的半透明属性:translucent=1就可以解决了,整个窗口形状完全由背景图决定,可以实现完美的圆角。然后窗口半透明时,窗口中的子窗口(非SWindow)就不能正常显示,所以有时候不得不使用translucent=0,这时窗口就成了方形。实际上这个... 阅读全文
posted @ 2015-12-30 11:12 启程软件 阅读(4398) 评论(0) 推荐(0) 编辑
摘要:模块结构图:SOUI框架图: 阅读全文
posted @ 2015-12-01 17:10 启程软件 阅读(7359) 评论(0) 推荐(0) 编辑
摘要:列表控件是客户端应用最常用的控件之一。列表控件通常只负责显示数据,最多通知一下APP列表行的选中状态变化。现在的UI经常要求程序猿在列表控件里不光显示内容,还要能和用户交互,显示动画等等,传统的列表控件对于这样的需求基本是无能为力了。Android开发中很多界面都直接采用ListView实现,Lis... 阅读全文
posted @ 2015-10-09 12:41 启程软件 阅读(6892) 评论(1) 推荐(2) 编辑
摘要:在SOUI中已经提供了大部分常用的控件,但是内置控件不可能满足用户的所有要求,因此一个真实的应用少不得还要做一些自定义控件。学习一个新东西,最简单的办法就是依葫芦画瓢。事实上在SOUI系统中内置控件和自定义控件的开发流程是完全一样的,因此只需要打开SOUI的源代码,随便找一个控件看一下就大体差不多了... 阅读全文
posted @ 2015-08-07 16:56 启程软件 阅读(5161) 评论(0) 推荐(0) 编辑
摘要:SOUI项目的SVN根目录下有一个doc目录,下面有一份控件属性表。包含了大部分控件的大部分属性,不过也不一定完全准确。最保险的办法还是查源代码。SOUI对象包含控件及ISkinObj等从SObject派生的对象都可以使用XML配置属性。要知道如何查SOUI对象属性,首先要看一下SOUI解释属性的流... 阅读全文
posted @ 2015-08-03 18:38 启程软件 阅读(4350) 评论(0) 推荐(0) 编辑
摘要:使用SOUI模仿Android的ListView控件。 阅读全文
posted @ 2015-07-31 11:50 启程软件 阅读(5988) 评论(1) 推荐(3) 编辑
摘要:在SOUI中解决解码器是一个独立的模块。不同的解码器决定了程序中能够加载什么样的图片类型。使用SComMgr来加载SOUI的模块时,debug模式下默认的图片解码器是imgdecoder-png。这个解码器只能解码PNG图片。至于为什么用这个解码器作为debug版本的默认解码器是为了演示在SOUI中... 阅读全文
posted @ 2015-06-23 11:16 启程软件 阅读(2663) 评论(0) 推荐(0) 编辑
摘要:不同的SOUI控件可以产生不同的事件。SOUI系统中提供了两种事件处理方式:事件订阅 + 事件处理映射表(参见第八篇:SOUI中控件事件的响应)事件订阅由于直接将事件及事件处理函数连接,不存在事件分发的问题,这里主要介绍使用事件映射表时的事件分发。在回答这个问题前,首先了解一下什么是事件分发。在大型... 阅读全文
posted @ 2015-04-07 22:06 启程软件 阅读(4749) 评论(0) 推荐(0) 编辑
摘要:LUA是一种体积小,速度快的脚本语言。脚本语言虽然性能上和C++这样的Naitive语言相比差一点,但是开发速度快,可以方便的更新代码等,近年来受到了越来越多开发者的重视。在SOUI框架中,我把脚本模块参考CEGUI抽象出一个独立的脚本接口,方便实现各种脚本语言的对接。下面简单介绍一下在SOUI中实... 阅读全文
posted @ 2015-03-23 23:08 启程软件 阅读(2950) 评论(0) 推荐(0) 编辑
摘要:像写网页一样做客户端界面可能是很多客户端开发的理想。做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑。当需求变化时,只需要在服务端把相关代码调整一下,用户即可看到新的内容(界面)。传统的客户端程序开发流程... 阅读全文
posted @ 2015-03-16 00:00 启程软件 阅读(6301) 评论(0) 推荐(0) 编辑
摘要:使用SOUI开发客户端UI程序,通常也推荐使用XML代码来创建窗口,这样创建的窗口使用方便,当窗口大小改变时,内部的子窗口也更容易协同变化。但是最近不断有网友咨询如何使用代码来创建SOUI子窗口,特此在这里统一解答。要回答这个问题,首先要了解SOUI窗口创建及布局的流程。先从swnd.cpp里抄一段... 阅读全文
posted @ 2015-02-26 18:42 启程软件 阅读(6652) 评论(2) 推荐(0) 编辑
摘要:Win32编程中,用户需要一个新控件时,需要向系统注册一个新的控件类型。注册以后,调用::CreateWindow时才能根据标识控件类型的字符串创建出一个新的控件窗口对象。为了能够从XML描述的字符串中创建出需要的控件对象,和Win32类似,在SOUI中要创建一个新的控件也同样需要向SOUI系统注册... 阅读全文
posted @ 2015-02-09 10:47 启程软件 阅读(4319) 评论(8) 推荐(0) 编辑