描述:
设计SQL Server2000企业管理器样式的界面,而且要采用分模块方式设计,所有的界面放在COM组件中,最后将其嵌入到主程序中,怎么做好? 各位大虾有什么好的思路?
解决方案1:
com组件 选支持MFC就可以用MFC的对话筐 窗口! 我们就这么用的 另外 也可以用ATL的窗口
学习!
解决方案3:帮个忙! UP
解决方案4: 请问你是用纯的ATL写还是还用了MFC?
前者的话,你需要看一下扩展WTL.
有界面的COM--ActiveX
解决方案6: 至于xiaohyy(醉大饿极)前面提到的是否是使用DLL还是COM,我在下面这个帖子中做过讨论,楼主有兴趣可以参考一下。
http://expert.csdn.net/Expert/topic/2141/2141531.xml?temp=.6272089
如果用COM实现,可以设计成ActiveX兼容形式,但会有冗余(一部分功能并不使用,但既然编成兼容ActiveX,为防止其他ActiveX容器的使用,必须实现实际并不使用的方法)。而楼主的要求很死,只是在右侧视图中显示模块界面,我建议从头设计一组接口以专用于此系统。
主程序成了容器,模块成了插件,所以必须至少有两个接口,一个IXXXSite,一个IXXX。假设为IABCDSite和IABCD。模块实现IABCD接口,主程序实现IABCDSite接口。
右侧的视类保留一个IABCD的指针,用以控制当前模块窗口的界面更新(如:菜单、快捷键等)
IABCD中应有一个类似
HRESULT Initital( [in] IABCDSite *pSite ); // 主程序将自身实现的IABCDSite传递进去
还应该有几个处理模块相关界面(加速键、菜单等)的函数,如:TranslateAccelerator、GetMenuString等。
而IABCDSite中也应该有类似
HRESULT GetMainWnd( [out, retval] HWND *pHWnd ); // 返回主窗口的句柄
具体细节不是简单就说的完的,我曾经给一个公司编一个分布式信息管理系统,不过刚差不多弄完基架的时候那公司就不要了(突然停止),因此那些程序也就废了,不过也已经实现了楼主希望的效果。如果楼主有兴趣,把邮箱贴出来
学习!
解决方案8: API WTL 来写窗口 Create 上去
也可以不用com的,用dll就可以了,导出函数,比如create。。。
如果用com,也是一样的道理,只不过是通过接口访问。做成activex。。