思路简要介绍如下: 1、开发工具:vb6,因为需要子类化autocad的MDIClient客户区以监视windows消息来响应面板的位置尺寸等设置过程,因此工程类型必须为ActiveXdll,工程内添加一个窗体来作为任务面板。 2、利用API函数SetWindowPos、CallWindowProc等来进行子类化MDIClient客户区(如果不明白什么是子类化可参考网上的VB编程的例子及相关知识) 3、关键的关键是跟踪MDIClient客户区的WM_ERASEBKGND消息,在其消息发生后实时设置面板的位置和尺寸以及MDIClient客户区的位置和尺寸使其互相匹配。 4、对于autocad2005以下版本可以使用上述方来,而对于高版本的cad实现任务面板功能最好方法是使用VB.Net中的paletteset()来进行开发,这才是真正的autocad任务面板,能够轻松的Dock和cad真正融为一体。 |