摘要:
使用SOUI开发客户端UI程序,通常也推荐使用XML代码来创建窗口,这样创建的窗口使用方便,当窗口大小改变时,内部的子窗口也更容易协同变化。但是最近不断有网友咨询如何使用代码来创建SOUI子窗口,特此在这里统一解答。要回答这个问题,首先要了解SOUI窗口创建及布局的流程。先从swnd.cpp里抄一段... 阅读全文
摘要:
Win32编程中,用户需要一个新控件时,需要向系统注册一个新的控件类型。注册以后,调用::CreateWindow时才能根据标识控件类型的字符串创建出一个新的控件窗口对象。为了能够从XML描述的字符串中创建出需要的控件对象,和Win32类似,在SOUI中要创建一个新的控件也同样需要向SOUI系统注册... 阅读全文
摘要:
在IM中使用动画表情是一种非常有趣的方式,然而选择一种合适的方式来实现却并不容易。一般来说,除了自己去实现一个富文本控件,目前主要的解决方案有3种:1、使用浏览器做容器。2、使用QT提供的Richtext做容器。3、使用Richedit做容器。使用浏览器做容器好处是使用简单,效率应该也不错(没有测试... 阅读全文
摘要:
Richedit是一个OLE容器,使用Richedit来显示IM聊天内容时,通常使用OLE对象来实现在Richedit中播放表情动画。触发表情的绘制有两种途径:1、来自Richedit的刷新消息。2、来自表情动画定时器的刷新消息。要刷新表情的显示首先需要知道表情的显示位置。第一种刷新过程中,绘制消息... 阅读全文
摘要:
从Windows 2K开始,MS为UI开发引入了分层窗口这一窗口风格。使用分层窗口,应用程序的主窗口可以是半透明,也可以是逐点半透明(即每一个像素点的透明度可以不同)。可以说,正是因为有了分层窗口,在Windows上开发的应用程序的UI才真正炫起来。在UI的主窗口上加一个分层窗口的风格对于一个稍有点... 阅读全文
摘要:
SOUI是一套100%开源的基于DirectUI的客户端开发框架。基于DirectUI设计的UI虽然UI呈现的效果可以很炫,但是相对于传统的win32应用程序中每个控件一个窗口句柄的形式,渲染效率是一个很重要的问题。在SOUI系统中提供了三种武器可以用来提高渲染效率:第一种武器:选择更高效的渲染引擎... 阅读全文
摘要:
使用SOUI开发的应用UI展示,欢迎使用SOUI的朋友提供资源:setoutsoft#qq.com #->@
阅读全文
摘要:
在MFC中,通常可以通过重载CWnd::PreTranslateMessage这样一个虚函数来实现对一些窗口消息的预处理。多用于tooltip的显示控制。在SOUI中也实现了类似的机制。要在SOUI中实现PreTranslateMessage,我们首先需要实现一个接口: struct IMes... 阅读全文
摘要:
内容渲染速度是决定一个UI成败的关键。无论UI做得多华丽,没有速度都没有意义。在MFC,WTL等开发框架下,每个控件都是一个窗口,窗口只需要画前景,背景。因为窗口之间的内容不需要做混合,一个子窗口的一次刷新只涉及该窗口本身,和其它窗口无关,因此这样效率很高。但是美中不足在于,窗口之间内容是孤立的,要... 阅读全文