随笔-341  评论-2670  文章-0  trackbacks-0
    GacUI今天终于支持菜单了。Windows7的菜单渐变样式十分复杂,让我端详了半个小时才搞清楚他的具体的绘图方法。代码上传到了Vczh Library++ 3.0的Candidate\GUI\GuiDemo\GuiDemo.sln。先看插图。



    制作菜单十分复杂,里面涉及到了很多黑暗的Windows API的知识,譬如说如何设置一个window的parent又不让他真正成为子窗口啦(所以parent总是在下面,但是却不包含它),譬如说如何设置全局鼠标钩子以便在合适的时候关掉菜单啦,如何不让菜单在单击的时候接受焦点啦,很多麻烦的事情。INativeWindow框架的windows实现在Candidate\GUI\NativeWindow\Windows\WinNativeWindow.cpp,可以看到很多处理这种事情的代码。

    现在GacUI还没有键盘遍历焦点控件和触发快捷键的功能,这个等到大部分控件都做完了再添加。下面需要做的有:
    1、带ItemTemplate的ComboBox
    2、带ItemTemplate的ListView和TreeView
    3、Ribbon
    4、ToolBar
    5、DocumentView和Canvas
    6、其他杂碎控件

    设计中的Accessibility的功能:
    1、键盘操作焦点
    2、不知道要不要提供UIAutomation,听说在美帝做软件没这个的话会很麻烦
    3、根据Windows的色盲选项来自动更换皮肤

    设计中的其他功能:
    1、控件专用反射功能
    2、因此可以提供UI Editor以及XML启动的功能
posted on 2011-11-12 23:27 陈梓瀚(vczh) 阅读(3206) 评论(9)  编辑 收藏 引用 所属分类: GacUI

评论:
# re: GacUI支持菜单 2011-11-13 00:10 | Apan
膜拜...  回复  更多评论
  
# re: GacUI支持菜单 2011-11-15 16:11 | phoenixbing
菜单 绝对是很恶心的一种东西.  回复  更多评论
  
# re: GacUI支持菜单 2011-11-16 17:56 | 春秋十二月
陈兄,你的GacUI,整个源码在哪啊  回复  更多评论
  
# re: GacUI支持菜单 2011-11-16 19:04 | 陈梓瀚(vczh)
@春秋十二月
http://vlpp.codeplex.com
下载最新版源代码
使用VS2010打开目录Candidate\GUI\GuiDemo\GuiDemo.sln,这是启动demo用的文件
工程还链接了Candidate\GUI\GUI\下面的所有代码,这是GacUI的库。

当前Direct2D版本的demo在debug下有一个性能问题,你要鼠标点几个按钮才能恢复正常速度,暂时在排查。Release下毫无问题。  回复  更多评论
  
# re: GacUI支持菜单 2011-11-20 07:41 | Scan
你是怎么处理Windows那些黑暗细节的?怎么解决的?  回复  更多评论
  
# re: GacUI支持菜单 2011-11-21 00:04 | 陈梓瀚(vczh)
@Scan
截图到画图然后放大,观察出来。  回复  更多评论
  
# re: GacUI支持菜单[未登录] 2011-11-29 04:15 | cc
感觉vc张就喜欢把简单的东西复杂话,其实并没有做出什么的好的库出来。
他那代码根本不能用!  回复  更多评论
  
# re: GacUI支持菜单[未登录] 2011-11-29 19:16 | cc
http://www.cnblogs.com/gameknife/archive/2011/11/30/2268509.html

看看别人的图像引擎。
vc张的代码相当不好用,没有点开源势力的能力还写的很恶心。
@cc
  回复  更多评论
  
# re: GacUI支持菜单 2011-12-01 18:51 | 陈梓瀚(vczh)
@cc
有何高见?  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理