zoukankan      html  css  js  c++  java
  • handless UI (direct UI)

    http://www.viksoe.dk/code/windowless1.htm

    viksoe的代码很好,这个可以被运用到商业上。
    个人觉得这个框架比mfc甚至wtl的在构架、思想上高N倍。
    首先 viksoe采用layout机制动态计算各子窗口的坐标位置,自适应屏幕大小的变化。而MFC要求子窗口的坐标位置硬编码,结果要适应不同分辨率的屏幕 非常困难。GTK+在窗口布局时分为两个阶段,第一个阶段父窗口先询问子窗口的最佳大小,第二个阶段父窗口根据自己的大小计算子窗口的实际大小,子窗口根 据实际大小进行调整。

    其次viksoe采用容器机制来合理分离控件的职责,MFC没有容器这个概念,很难实现递归组合。viksoe中差 不多所有控件都是容器,都可以容纳其它任何控件,而MFC只有顶层窗口才是容器,可以容纳其它子控件。容器这个概念对代码重用的影响非常之大,这里举两个 例子:其一是带图片的按钮(BitmapButton),在viksoe中它就是CCanvasUI类和CButtonUI的组合,而在MFC中,图片和 文字都要自己绘制。前者的CCanvasUI类和CButtonUI可以在很多地方重用,而后都的绘制代码和事件处理代码只有自己才能使用。在MFC中, 即使只是实现一个不同外观的列表框,你都要采用自绘的方式,代码重用非常困难,向列表框中加入其它控件就更麻烦了,要使用一些非同寻常的手段不可。

    另 外说句在驱动里画gui,这个和普通gui有所不同,上面说的directUI还是用到了Windows的消息,而驱动里只能自己hook key 、mouse 中断。然后实现各种消息的派发。但这样对兼容usb接口的键盘很成问题。这实际相当于自己实现了win32k里面的内容。而驱动里面画图其实不过是自己写 显存。但又有很多兼容问题要解决,别的不说,每种显卡的显存位置就要自己实现,所以softICE直接做不下去了,syser在部分机器上也得靠 directX来获取显存。
    我的blog hi.baidu.com/weolar

    HTMLayoutSDK 有时间看下这个,比较好用,用spy++去抓,也抓不到任何窗口,而且简单.htm文件描述,做界面那叫一个方便,效果也很不错,关键是免费,现在我都转这个做界面了. 

    我现在正在研究viksoe的这个DirectUI库,把它改写成wchar_t的了,并把类库中使用的CWindowWnd换成了atl/wtl的 CWindowImpl, 我准备好好的在这个DirectUI库的基础上把这个库进行进一步的开发,做一个好用的强大的DirectUI库,有兴趣一块开发的可以联系我,放到 Google code上,大家一块做!

    davidxifeng@gmail.com
    csdn上留言也行.不过不会经常查看 

  • 相关阅读:
    web api 设置允许跨域,并设置预检请求时间
    T4模板
    DDD模式
    Vue watch用法
    第三章--第五节:集合
    简单的Python API爬虫与数据分析教程--目录
    第三章--第四节:字典
    第三章--第三节(补充):列表排序
    汇总张小龙在知乎上的问答
    第三章--第三节:列表
  • 原文地址:https://www.cnblogs.com/cutepig/p/1758204.html
Copyright © 2011-2022 走看看