11 2014 档案
摘要:在MFC中,通常可以通过重载CWnd::PreTranslateMessage这样一个虚函数来实现对一些窗口消息的预处理。多用于tooltip的显示控制。在SOUI中也实现了类似的机制。要在SOUI中实现PreTranslateMessage,我们首先需要实现一个接口: struct IMes...
阅读全文
摘要:内容渲染速度是决定一个UI成败的关键。无论UI做得多华丽,没有速度都没有意义。在MFC,WTL等开发框架下,每个控件都是一个窗口,窗口只需要画前景,背景。因为窗口之间的内容不需要做混合,一个子窗口的一次刷新只涉及该窗口本身,和其它窗口无关,因此这样效率很高。但是美中不足在于,窗口之间内容是孤立的,要...
阅读全文
摘要:当窗口大小需要根据内容来确定时,使用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通道的数据,问题的关键...
阅读全文