之前看到Visual Log Parser这个工具很不错,并且是开源的,一直很想重写它。当我真正开始动手的时候,原来发现想要动它,并不是那么容易。
首先,我要学习CAB 框架[Composite Application block]。
www.gotdotnet.com/codegallery/codegallery.aspx?id=22f72167-af95-44ce-a6ca-f2eafbf2653c
收集了一些资料,如下:
Composite UI Application Block(Cab)比较详细的一片文章【转】
http://hi.baidu.com/ivanbobo/blog/item/f200fb2ef9982e5a4ec22619.html
组合界面程序块介绍(Composite UI Application Block) .
http://blog.csdn.net/funstar888/article/details/1648595
Composite UI Application Block学习笔记之Event Broker
http://www.cnblogs.com/hyphappy/archive/2005/11/17/278170.html
Composite UI Application Block学习笔记之Smart Part
http://www.cnblogs.com/hyphappy/archive/2005/11/24/283694.html
Composite UI Application Block 学习笔记之Commands
http://www.cnblogs.com/hyphappy/archive/2005/11/15/276438.html
其中,收集到两份很不错的分析文档《ObjectBuilder技术内幕.doc》&《ObjectBuilder源码分析.pdf》。
解决了CAB WinForm框架的问题,后来才发现原作者用到商用空件SandDock。从官方站点下载了一个试用阪,感觉不错。于是在网上找到一个类似的开源软件DockPane.
Dockpanel 实现浮动和多标签窗体解决方案
http://www.cnblogs.com/kevin11681/archive/2009/07/31/1535813.html
C#实现浮动和多标签窗体解决方案---使用Dockpanel
http://blog.csdn.net/zhangyuehua123/article/details/6861401
DockPane
http://sourceforge.net/projects/dockpanelsuite/
看了两天DockPane的源代码,感觉里面的代码是东拼西凑,没有注释。最大的弊端是,它对各个模块的支持是以Form的形式,且不能支持可视化设计。所以,有点想法,也想这个开源代码好好整理一下,开发一个适合自己的Dock控件。
有了这个想法之后,发现自己的知识远远不够,因为我不懂如何在C# WinForm控件开发中使用Windows API,特别是下面这两篇文章给我了一些困惑,不知道作者为什么要开发MdiClientController。
Getting "Handle" on the MDI Client
http://www.codeproject.com/Articles/8489/Getting-a-quot-Handle-quot-on-the-MDI-Client
Mdi窗体的边框设置
http://www.myfirm.cn/News/DotNetUserInterface/20080217053005403.html
后来看了一些文章才大概明白Windows API是怎么一回事:
C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1)
http://www.cnblogs.com/lanmiao/articles/2238236.html
C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(2)
http://www.cnblogs.com/lanmiao/articles/2238239.html
C#拦截系统消息的方法Application.AddMessageFilter
http://www.cnblogs.com/whtydn/archive/2009/04/30/1447117.html
C# 调用windows API(user32.dll)
http://blog.csdn.net/sniffer_wang/article/details/7391286
经过这几个星期的学习,才明白自己不知道的东西实在太多了。即使知道,我也不能很好的应用它们,这就是学习的困惑。好好努力,希望在年底前,我能做出一点东西出来,加油!