天天看点

Direct UI 资料

在directUI的所有控件中,无窗口富文本编辑框比较特殊。他需要使用windowless richedit技术。涉及ITextService和ITextHost接口。在这里有例子:http://support.microsoft.com/kb/270161

****************************************************************************************************

Insert Plain Text and Images into RichTextBox at Runtime:类似qq msn聊天窗口http://www.codeproject.com/KB/edit/csexrichtextbox.aspx

http://blog.csdn.net/hawkgao/article/details/5790087

0. Windows Live, QQ 和 百度 hi 的界面其实并不神秘。大家都想学习而不得其门而入。我也经历了跟大家同样的历程。现在发现了一些门道,跟大家分享一下。

1. 所谓 directUI 其实大部分不是真的用DirectX技术做的。其实他也是用的GDI和GDI+的函数绘制出来的。WPF是用的DirectX,这个很强。

2. 那些看起来非常漂亮的界面效果在《Windows 图形编程》这本书里面基本都有描述如何实现。下载:http://download.csdn.net/source/170911

3. directUI上的按钮,滚动条,等等其他控件都是自己一笔一划画出来的。看起来一笔一画很复杂。说白了就是用各种画线的函数,还有画块的函数综合搭配起来实现我们想要的效果。 GDI+为我们提供了一些效果的函数,比如渐变填充等等。其实我建议大家学习一下photoshop里面的技法。这些技法其实都是我们可以自己用代码实现的算法。

3. directUI上的消息分发也都是需要自己做的。也就不到一百个把。

4. directUI的例子代码:http://www.viksoe.dk/code/windowless1.htm

5. 在directUI的所有控件中,无窗口富文本编辑框比较特殊。他需要使用windowless richedit技术。涉及ITextService和ITextHost接口。在这里有例子:http://support.microsoft.com/kb/270161

6. 在 windowsless richedit 中实现图像和其他复杂文档对象,也就是在windows live 和 QQ 中贴图这种操作,需要对OLE对象的编辑功能。这就需要CRichEditOleCallback 和 IRichEditOle 接口。在这里有例子:http://support.microsoft.com/kb/141549

7. Windows Live, QQ 和百度hi他们都利用xml来控制控件的位置风格那些。其实他们都是为公司自己做的foundation库,为了考虑复用才这样做的。我们自己做的话可以不用xml。自己按照自己想做的样子写C++代码就行了。

最后,做directUI是一个非常耗时的过程。大家可以以http://www.viksoe.dk/code/windowless1.htm为基础实现自己的directUI。能节约一些时间。

另外付一个我的作品:BooguNote (http://boogu.me/) 。这就是用我上面所说的技术实现的。

很多界面程序员都觉得用代码来实现一些windowless ui或者说自绘界面还可以。但是如果让我们去设计这个界面就是难上加难了。在这里我给大家推荐一写应用程序界面设计的网站。希望对大家有用.

首选肯定是TopCoder 的 UI Design Competition . http://studio.topcoder.com/?module=ViewContestResults&ct=1000942

 其次在google上搜索“UI design pattern”。下面是我发现的一些很不错的网站。

1. Yahoo! Design Pattern Library,这里面收录了很多常用的新型界面模式: http://developer.yahoo.com/ypatterns/

2. User Interace Design Patterns,这里面好些是网页的界面模式,应用程序也可以参考:http://ui-patterns.com/

3. 40+ Helpful Resources On User Interface Design Patterns。一堆界面设计网站的集合:http://www.smashingmagazine.com/2009/06/15/40-helpful-resources-on-user-interface-design-patterns/

http://duilib.googlecode.com/svn/trunk/ 

源码 qq  360 等

http://bbs.duilib.com/  论坛

微软 wpf 学习资料

http://tech.it168.com/zt/wpf/index.html

http://developer.51cto.com/art/201009/224866.htm

http://developer.51cto.com/art/200809/88207.htm

DirectUI 是Codeproject上的一帮人自己写的,我就看到Live Messenger的UI使用了DirectUI。这个技术也不是很高深,基本原则就是保留控件的功能,界面自己画。

http://www.codeproject.com/KB/miscctrl/jobwnd.aspx   大概这个就是DirectUI的起源了吧。

http://www.codeproject.com/KB/macros/wlmplugin.aspx 这个也可以参考一下。

DirectUI是open source 的,自己可以研究一下代码,然后自己画控件。说起来技术不是很难,但是画好了也不容易,呵呵。

http://forums.microsoft.com/china/ShowPost.aspx?PostID=4115527&SiteID=15

http://blog.csdn.net/b2b160/article/details/6207724

http://www.sineysoft.com/blog/post/directUI.html

GDI+

http://www.sineysoft.com/blog/post/gdix.html

uilib 分析 

http://www.cppblog.com/Error/articles/148722.html

***************************************************************************************************