跟大家分享一下directUI的心得
2014-01-04 09:35
260 查看
original url : http://bbs.csdn.net/topics/340239295
0. WPF, Windows Live, QQ 和 百度 hi 的界面其实并不神秘。大家都想学习而不得其门而入。我也经历了跟大家同样的历程。现在发现了一些门道,跟大家分享一下。
1. 所谓 directUI 其实大部分不是真的用DirectX技术做的。其实他也是用的GDI和GDI+的函数绘制出来的。
2. 那些看起来非常漂亮的界面效果在《Windows 图形编程》这本书里面基本都有描述如何实现。下载:http://download.csdn.net/source/170911
3. directUI上的按钮,滚动条,等等其他控件都是自己一笔一划画出来的。看起来一笔一画很复杂。说白了就是用各种画线的函数,还有画块的函数综合搭配起来实现我们想要的效果。 GDI+为我们提供了一些效果的函数,比如渐变填充等等。其实我建议大家学习一下photoshop里面的技法。这些技法其实都是我们可以自己用代码实现的算法。
4. directUI上的消息分发也都是需要自己做的。也就不到一百个把。
5. directUI的例子代码:http://www.viksoe.dk/code/windowless1.htm
6. 在directUI的所有控件中,无窗口富文本编辑框比较特殊。他需要使用windowless richedit技术。涉及ITextService和ITextHost接口。在这里有例子:http://support.microsoft.com/kb/270161
7. 这一点我正在探索。在 windowsless richedit 中实现图像和其他复杂文档对象,也就是在windows live 和 QQ 中贴图这种操作,需要对OLE对象的编辑功能。这就需要CRichEditOleCallback 和 IRichEditOle 接口。在这里有例子:http://support.microsoft.com/kb/141549
8. WPF,Windows Live, QQ 和 百度hi他们都利用xml来控制控件的位置风格那些。其实他们都是为公司自己做的foundation库,为了考虑复用才这样做的。我们自己做的话可以不用xml。自己按照自己想做的样子写C++代码就行了。
最后,做directUI是一个非常耗时的过程。大家可以以http://www.viksoe.dk/code/windowless1.htm为基础实现自己的directUI。能节约一些时间。
另外付一个我的作品:http://boogu.me/ 。这就是用我上面所说的技术实现的。现在我正在实现在文字块中显示ole对象。
0. WPF, Windows Live, QQ 和 百度 hi 的界面其实并不神秘。大家都想学习而不得其门而入。我也经历了跟大家同样的历程。现在发现了一些门道,跟大家分享一下。
1. 所谓 directUI 其实大部分不是真的用DirectX技术做的。其实他也是用的GDI和GDI+的函数绘制出来的。
2. 那些看起来非常漂亮的界面效果在《Windows 图形编程》这本书里面基本都有描述如何实现。下载:http://download.csdn.net/source/170911
3. directUI上的按钮,滚动条,等等其他控件都是自己一笔一划画出来的。看起来一笔一画很复杂。说白了就是用各种画线的函数,还有画块的函数综合搭配起来实现我们想要的效果。 GDI+为我们提供了一些效果的函数,比如渐变填充等等。其实我建议大家学习一下photoshop里面的技法。这些技法其实都是我们可以自己用代码实现的算法。
4. directUI上的消息分发也都是需要自己做的。也就不到一百个把。
5. directUI的例子代码:http://www.viksoe.dk/code/windowless1.htm
6. 在directUI的所有控件中,无窗口富文本编辑框比较特殊。他需要使用windowless richedit技术。涉及ITextService和ITextHost接口。在这里有例子:http://support.microsoft.com/kb/270161
7. 这一点我正在探索。在 windowsless richedit 中实现图像和其他复杂文档对象,也就是在windows live 和 QQ 中贴图这种操作,需要对OLE对象的编辑功能。这就需要CRichEditOleCallback 和 IRichEditOle 接口。在这里有例子:http://support.microsoft.com/kb/141549
8. WPF,Windows Live, QQ 和 百度hi他们都利用xml来控制控件的位置风格那些。其实他们都是为公司自己做的foundation库,为了考虑复用才这样做的。我们自己做的话可以不用xml。自己按照自己想做的样子写C++代码就行了。
最后,做directUI是一个非常耗时的过程。大家可以以http://www.viksoe.dk/code/windowless1.htm为基础实现自己的directUI。能节约一些时间。
另外付一个我的作品:http://boogu.me/ 。这就是用我上面所说的技术实现的。现在我正在实现在文字块中显示ole对象。
相关文章推荐
- 跟大家分享一下directUI的心得
- 与大家分享一下我的面试经历,也算对自己的一次总结。大家有什么心得,意见都可以畅所欲言。
- Java学习心得(看到后觉得很好,在博客上分享一下,希望对大家有启发)
- Java学习心得(看到后觉得很好,在博客上分享一下,希望对大家有启发)
- makefile的一点心得, 转过来跟大家分享一下 ------ %:
- 分享一下学习css,js心得
- 与大家分享一点游戏管理晋升的心得(完整版)
- mysql数据库绿色软件制作过程(跟大家分享一下,希望对新手有所帮助)
- 再跟大家分享一下AT24C01~AT24C256的读写程序
- 关于unity3dGUI(uGUI)的一些自适应的收获,在这里跟大家分享一下
- 开车十几年了,一些心得和大家分享、探讨
- 在网上看到一篇文章,挺不错的,与大家分享一下
- 程序员不能坐太久哦!终于了断了多年的痔疮困扰! 和大家分享一下经验!
- 专知原创和整理了一些中英文机器学习从入门到精通的资料,和大家分享一下
- 一个不错的Silverlight展示网站反编译后的源码和大家分享一下(http://www.microsoft.com/taiwan/student/Good.htm),很简单的
- 前两天写的一个菜单和大家分享一下
- 迫不及待的和大家分享iOS下的正则表达式类库的心得!
- 分享公积金按揭心得,希望能给大家一些帮助!
- 继续为大家分享一下自己的js小插件,方便大家学习交流
- 给大家分享一下避免MySQL替换逻辑SQL的坑爹操作(链接)