作为一只只接触C++和界面超过一年半的喵(说来实在惭愧),我今天斗胆号召发起一个开源项目Purr(代码托管于GitHub:http://git.io/pur),目前只写了5千行,只是实现了一个简单的Button控件,从源代码中可以看到我一些幼稚的想法。要知道,对于一个垃圾的程序员来说,把自己那几行破代码暴露在公众面前,无异于街头裸奔,自取其辱。但是,我还是这样做了,并不是为了证明我脸皮有多厚,只是个人觉得这是一种很有效的互相学习的方式,而且界面这个坑确实不浅呀,需要大家一起填,24年前的Linux也不过10239行代码,凡事都有一个开始。好了,我现在需要去网吧调养两天了:-)
------解决思路----------------------
我也是一只对GUI感兴趣的瞄.
刚毕业的时候,学习WTL,开始自绘各种控件,自己写界面库,基于句柄,由于工作用到了Aero,才发现其实Aero很简单.
后来开始使用duilib,觉得好,但是不够好,很多代码都看不太懂.
在看懂基本思路之后,现在已经开始写了一个简单的界面库,其实重点是布局,从WTL的绝对布局转变为了无句柄的相对布局.
duilib是基于win32,建议在WTL的基础上去用duilib的思路写界面库.
WTL,就是对win32 api的封装,第一个好处就是把win32的消息处理函数变成类的成员函数.消息映射更简单,更方便.
------解决思路----------------------
推荐你用SOUI
SVN:http://code.taobao.org/svn/soui2/trunk
------解决思路----------------------
为什么要一直研究界面呢?
我研究一个按钮也有2个星期,感觉浪费了很多时间。还是研究一下怎么改别的人程序吧。
按钮主要就是鼠标进入和鼠标按住左键不放移出的问题。
在SetWindowLong 里面用 TrackMouseEvent 和 PtInRect 配合就可以搞定。
------解决思路----------------------
希望你合作成功!多支持开源和民间的研发团队。