摘要:
当窗口大小需要根据内容来确定时,使用XML布局可能需要做一些特殊的处理。例如:不管窗口多大,我需要将该窗口相对于父窗口居中在XML中应该怎么处理?如果窗口大小是固定的(如, 100 *100),这样pos属性可以定义为"|-50,|-50,|-50,|-50"即可。当窗口大小不确定时,SOUI中提供... 阅读全文
摘要:
SOUI是一套基于Win32 SDK的窗口开发的一套DirectUI框架。在SOUI中除了有真窗口使用窗口消息通讯机制外,还有SOUI控件之间的通讯,及控件的事件处理等。1、真窗口消息通讯因此可以使用::SendMessage这个API来与宿主窗口通讯。在任意一个地方只要获取到了SOUI的宿主窗口句... 阅读全文
摘要:
用户对客户端的UI的要求越来越高,采用alpha通道对前景背景做混合是提高UI质量的重要手段。UI开发离不开GDI,然后要用传统的GDI函数来处理alpha通道通常是一个恶梦:虽然有AlphaBlend这个API可以做alpha混合,但是前提必须是操作的DC中的位图有alpha通道的数据,问题的关键... 阅读全文
摘要:
前言定时器是win32编程中常用的制作动画效果的手段。在Win32编程中,可以使用::SetTimer来创建定时器,定时器消息会被会发到调用SetTimer时指定的HWND。在SOUI中一般来说只有一个宿主窗口有HWND,所有的SWindow都属于一个宿主窗口,如此一来直接使用::SetTimer创... 阅读全文
摘要:
前言:无论一个DirectUI系统提供的DUI控件多么丰富,总会有些情况下用户需要在DUI窗口上放置有窗口句柄的子窗口。为了和无窗口句柄的子窗口相区别,这里将有窗口句柄的子窗口称之为真窗口。每一个使用SOUI创建的界面都是从SHostWnd派生出来的。SHostWnd本身就是一个有窗口句柄的真窗口。... 阅读全文
摘要:
SOUI相对于DuiEngine一个重要的变化就是很多模块变成了一个单独的DLL。然后很多情况下用户可能希望整个产品就是一个EXE,原来DuiEngine提供了LIB编译模式,此时链接LIB模式的DuiEngine就行了。但是SOUI默认至少Utilities那个模块是不提供LIB编译模式的。uti... 阅读全文
摘要:
SOUI资源管理模块从前篇已经讲到在SOUI中所有资源文件通过一个uires.idx文件进行索引。这里将介绍在程序中如何引用这些资源文件。在SOUI系统中,资源文件通过一个统一的接口对象读取:namespace SOUI{ enum BUILTIN_RESTYPE { RE... 阅读全文
摘要:
尽管SOUI已经内置了大部分常用的控件,很显然内置控件很难满足各种应用的形式各异的需求。因此只有提供足够的扩展性才能满足真实应用场景。除了将系统尽可能的组件化外,SOUI在控件自绘(SWindow)及绘图对象(ISkinObj)两个方面提供用户扩展。绘图对象(ISkinObj)的扩展系统内置了如SS... 阅读全文
摘要:
为UI在不同地区显示不同的语言是产品国际化的一个重要要求。在SOUI中实现了一套类似QT的多语言翻译机制:布局XML不需要调整,程序代码也不需要调整,只需要为不同地区的用户提供不同的语言翻译文件即可。在SOUI中,我们实现了一个使用明文XML的语言翻译模块:translator.dll为了使用多语言... 阅读全文
摘要:
SOUI中提供了大部分常用的win32标准控件的实现,如pushbutton, checkbox, radiobox, edit, richedit, listbox, combobox, treectrl, listctrl (report), hotkeyctrl等。大部分控件在接收用户输入后,... 阅读全文