yehao's Blog
跟大家分享一下directUI的心得
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对象。
posted on 2013-10-30 12:23
厚积薄发
阅读(410)
评论(0)
编辑
收藏
引用
所属分类:
Windows编程
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
VC使用IPicture显示网上图片(通过URL指定)
UAC的前世今生
WideCharToMultiByte和MultiByteToWideChar函数的用法
VS中无签名UTF8和带签名UTF8格式
NM_CUSTOMDRAW消息解释
公用控件的消息分类 WM_NOTIFY详解
CDialogSK---一个支持皮肤化的对话框类
如何子类化(SubclassWindow)窗体
VS2010进行远程调试方法总结
WMI常见问题及解决方法
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
统计
随笔 - 0
文章 - 147
评论 - 6
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Web
(rss)
文章分类
C/C++(24)
(rss)
CxImage
(rss)
Linux编程(1)
(rss)
Web(4)
(rss)
Windows Mobile(4)
(rss)
Windows编程(67)
(rss)
计算机基础(8)
(rss)
面试题(3)
(rss)
其他(13)
(rss)
软件工程(1)
(rss)
设计模式(2)
(rss)
网络编程(21)
(rss)
文章档案
2015年3月 (2)
2015年2月 (1)
2014年7月 (1)
2014年5月 (2)
2014年4月 (1)
2014年3月 (7)
2014年2月 (2)
2013年11月 (3)
2013年10月 (3)
2013年9月 (1)
2013年8月 (1)
2013年5月 (3)
2012年12月 (2)
2012年10月 (1)
2012年9月 (16)
2012年8月 (2)
2012年7月 (2)
2012年3月 (4)
2012年2月 (7)
2012年1月 (1)
2011年12月 (2)
2011年11月 (1)
2011年10月 (4)
2011年9月 (9)
2011年8月 (7)
2011年7月 (4)
2011年6月 (14)
2011年5月 (29)
2011年4月 (15)
搜索
最新评论
1. re: 关于OS系统的x86、x64与IA32、IA64的关系[未登录]
同意楼上的说法 X64 只是 X86 的扩展
--brian
2. re: mfc CWebBrowser2获取网页源代码[未登录]
这段代码 运行到第5的行 就会报内存错误怎么回事
--yy
3. re: VC鼠标拖动动态画矩形框
经典!谢谢
--郭勇
4. re: 关于OS系统的x86、x64与IA32、IA64的关系
???,不太对
--1111
5. re: _declspec(dllexport)
刚学c++,不错
--天堂左我往右