描述:
原来有个项目,基于对话框的,有一个主窗口,还有几个其它弹出窗口。
现在为了便于复用,想把这个项目改成一个ActiveX控件,在其他项目中使用。使用时点击一个按钮或快捷键就弹出那个主窗口。
要求改成控件后:使用这个控件时,只在使用它的表单中显示一个小图标(就像在C++Builder中的Form中加入一个OpenDialog似的),运行这个使用它的项目时也不显示出来,当有特定的操作时才调用控件中的主窗口。
不知道说清楚了没有。其实与VC中的CFileDialog对话框有些类似。
对了,这个控件主要用于桌面应用系统,不需要在网上运行。
刚入门,很多都不懂。希望大虾们不要笑我。
请指教个实现方法。最好有个例子。多谢了。
解决方案1:
新建一个基于MFC Activex控件,将你原有程序的主窗口属性改成child.
在CMyCtrl的OnCreate方法中创建你的主窗口即可,注意在OnClose时注意销毁你create的窗口。
为了你的窗口代替控件的整个客户区在CMyCtrl的OnDraw方法中调用m_pDlg->MoveWindow(rcBounds, TRUE);要设置控件的初始大小用父类的SetControlSize(150,10);
其他操作跟MFC 对话框程序没任何区别了。
参考:
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c5561/
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c2649/
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c5517/
最好的是:
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c2615/