关于ActiveX引入FormView结构技术
引入FormView技术
下面介绍在制作ActiveX控件时引入FormView技术, 制作步骤如下:
1.在上面工作的基础上,在ResourceView页中新增一对话框资源,命名为IDD_HELLOFORMVIEW,可以在对话框上放自己的控件;
2.设置对话框资源IDD_HELLODIALOG属性的Style页为Style:Child、Border:
Dialog Frame、Title Bar:unchecked;设置More Style页为Visible:
checked;Control: checked;设置Extended Styles页为Static Edge:
checked;
3.为对话框资源IDD_HELLOFORMVIEW创建新类CHelloFormView,从CFormView继承;
4.在HelloFormView.h中将CHelloFormView的构造函数CHelloFormView()和析构函数 virtual ~CHelloFormView()从protected改为public;
5.在HelloFormView.h中对CHelloFormView类加入public friend classCHelloCtrl;
6.确认在HelloCtrl.h中已加入语句#include “HelloFormView.h",为CHelloCtrl类添加 成员变量CHelloFormView m_helloFormView;
7.修改CHelloCtrl::OnCreate函数,在此创建m_helloFormView;
8.修改DoHello代码,在此显示FormView;
int CHelloCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// 创建FormView
m_helloFormView.Create(NULL,NULL,
AFX_WS_DEFAULT_VIEW,CRect(0, 0, 0, 0),
this, AFX_IDW_PANE_FIRST, NULL);
return 0;
}
void CHelloCtrl::OnDraw(CDC* pdc,
const CRect& rcBounds, const CRect& rcInvalid)
{
// 定位Hello对话框
m_helloFormView.MoveWindow(rcBounds,TRUE);
}
编译后用ActiveX Control Test Container测试,引入ocx时出错。
请问各位这是什么问题?该怎么解决?
问题点数:100、回复次数:8Top
1 楼sinall()回复于 2005-04-21 15:54:52 得分 100
这个做法我用过,没什么问题。
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c2615/Top
2 楼singlewolf17(健)回复于 2005-04-21 15:58:49 得分 0
编译后用ActiveX Control Test Container测试,关闭Container时出错。
请问各位这是什么问题?该怎么解决?Top
3 楼singlewolf17(健)回复于 2005-04-21 16:00:41 得分 0
Formview 啊 不是Dialog 急救啊Top
4 楼sinall()回复于 2005-04-21 16:01:39 得分 0
void CHelloCtrl::OnDraw(CDC* pdc,
const CRect& rcBounds, const CRect& rcInvalid)
{
// 定位Hello对话框
//m_helloFormView.MoveWindow(rcBounds,TRUE); //先把这句屏蔽掉试试。
}
如果还是不行,那么应该是创建就出错了
m_helloFormView.Create(NULL,NULL,
AFX_WS_DEFAULT_VIEW,CRect(0, 0, 0, 0),
this, AFX_IDW_PANE_FIRST, NULL);Top
5 楼sinall()回复于 2005-04-21 16:11:42 得分 0
刚刚试了一下,没任何问题,
如果你需要
告诉我E-mail地址Top
6 楼singlewolf17(健)回复于 2005-04-21 16:45:09 得分 0
好的 谢谢 y_jian_17@sohu.comTop
7 楼sinall()回复于 2005-04-21 16:58:00 得分 0
已发送,请查收。Top
8 楼singlewolf17(健)回复于 2005-04-21 17:07:40 得分 0
谢谢!准备结帖Top




