一个程序库,终于可以pre-alpha了.哈哈哈哈...

CQZE 2007-10-28 03:36:30
我做的一个程序库,取的名字叫 Simple Toolkit Development Environment X(Stdex),其中包括 GUI/Threads/TextToken等常用的东西。这个库是以跨平台,线程安全和异常中立的原则来设计的。其中最复杂的部分就是GUI,从窗口管理器到控件的实现都不是轻松的工作。

这是第一次发这个库,基础的部分差不多构建好了,换句话说就是窗口管理器可以跑起来了,而更多的特性只能一步一步的来。

GUI的控件实现起来不简单,主要是算法逻辑,这个复杂度也不亚于窗口管理器的实现,这次包中也只包含了几个稍微见得人的控件,
因为这些控件的实现都相对较简单:)

这个包是才搞出来的,我把这个版本定为0.1.0_Alpha,其目的是希望大家没事的时候,帮忙实现几个控件,也随便试验程序库内部逻辑是不是合理的,也可以测试我找不到的BUG(差不多半年的时间,找到3个重大的BUG,如果大家帮忙使劲的话,这个效果绝对要好得多)。
至于怎么实现控件,我也已经准备好介绍实现方法的文章了。

下载地址 http://sourceforge.net/projects/stdex

下载后要先编译。可以参考一下包中的help/index.htm,里面还有一个hellow,world的例子。
欢迎拍砖~~~...
...全文
811 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
thatway_c 2010-08-12
  • 打赏
  • 举报
回复
mark
laomai 2010-01-06
  • 打赏
  • 举报
回复
挖坟,顶贴。
DLevel 2010-01-06
  • 打赏
  • 举报
回复
UP Mark。这么多的命名空间。有点不爽。
jeff_nie 2010-01-06
  • 打赏
  • 举报
回复
强帖留名。
Wolf0403 2010-01-05
  • 打赏
  • 举报
回复
这挖坟挖的...崇拜
ypb362148418 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 healer_kx 的回复:]
楼主是我在CSDN上的精神偶像啊!!!

PS:透露一个内部消息,楼主一共六个马甲,除了这个以外,其他的都是两个星星了。。。 。。。

[/Quote]

哈哈,支持一下LZ,我去看看了
lzh3ng 2010-01-04
  • 打赏
  • 举报
回复
收藏先。
luffyke 2009-12-25
  • 打赏
  • 举报
回复
收藏收藏
Cooliess 2009-12-15
  • 打赏
  • 举报
回复
好厉害的东西
voodoo82 2009-12-02
  • 打赏
  • 举报
回复
先回帖,再看看
yutaooo 2009-01-30
  • 打赏
  • 举报
回复

标记。
hsc456 2009-01-30
  • 打赏
  • 举报
回复
支持一下,好东西
fenghuijun135 2008-12-30
  • 打赏
  • 举报
回复
很强大 楼主很强
flyingxu 2008-12-30
  • 打赏
  • 举报
回复
收藏一下
nullah 2008-12-26
  • 打赏
  • 举报
回复
很强大 膜拜下
taodm 2008-12-26
  • 打赏
  • 举报
回复
做过这东西的人不少,能不能被别人大量用就是严重问题了。
反正,我是不看好其前途。
这东西只能用来证明一下自己的水平。
alexmayer 2008-12-26
  • 打赏
  • 举报
回复
收藏,并标记上。

支持楼主!
Oversense 2007-10-29
  • 打赏
  • 举报
回复
弱弱的问一下,楼主这个

1.所有窗口都是自己画的,就是用Win32api DrawLine 自己画的? 比如一个Button就是几笔画出来

还是

2.把win32的Button类,封装了一把?


无论如何,楼主精神可嘉啊,光那个stdex::gui::widget就把我吓了一跳,呵呵
R9R9R9 2007-10-29
  • 打赏
  • 举报
回复
up
CQZE 2007-10-29
  • 打赏
  • 举报
回复
窗口管理器负责管理窗口和通知窗口重绘。在Stdex.GUI中有两种窗口句柄类型。window和native_window_type
window的类型是Stdex.GUI定义的窗口句柄,用Stdex.GUI创建的窗口都是window类型。
native_window_type的类型是系统的窗口句柄,Stdex.GUI中只有很少的操作涉及到这种句柄,例如在Stdex.GUI窗口中嵌入系统的窗口,例如MFC/Win32API写的窗口或在X下面用GTK/XLib写的窗口。

在一个Stdex.GUI应用程序里,例如一个窗口A上有一个Button(窗口B),对于系统的窗口系统来说,这里只有一个窗口(可以用MS Spy++查看Button和主窗口事一个句柄),而对于Stdex.GUI来说,这里有两个窗口。目前Stdex.GUI定义了三种窗口类型

1. Root窗口
在上面的例子中,窗口A就是Root窗口,它是附加到一个native window上的,但是它的类型仍然是window类型

2. Widget窗口
在上面的例子中,B就是一个Widget窗口,Widget窗口都是Root的子窗口。但是别混淆了,从概念上说,Widget和Root的关系其实是
class Root: public Widget,就相当于Root是一种特殊的Widget窗口

3. Frame窗口
Frame窗口也是一种特殊的Widget窗口。它用来放置一个native_window_type的窗口,也就是说这些窗口不是用Stdex.GUI开发的。同时Frame窗口也可以放置Root窗口。

窗口管理器不仅定义了窗口的类型,同时还维护了在运行时窗口的各个行为。例如覆盖重画,等同于Windows的WS_CLIPSIBLINGS行为
加载更多回复(18)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧