描述:
我编了一个基于对话框的画图程序,主对话框上有复选框,有编辑框,有按钮,根据复选框和编辑框的设定赋值,点击按钮后通过DoModal()调出另一个对话控作为画布,然后通过OnPaint函数画出图象。已经运行成功了,然后我建了一个MFC ActiveX ControlWizard项目,让后像在MFCAppWizard里那样在上面添加对话框,添加控件,编辑代码,编译也通过了,但是最后测试时只有一个矩形区域里的一个椭圆,这是怎么回事啊?我根本就没有画椭圆,只是代码中有画过圆形,而且还有其他的图形,以前在MFCAppWizard里应该有的两个对话框也没了,该怎么办啊?请高手给我详细的解说一下。
解决方案1:
楼主:
你是不是在IDD_PROPPAGE_XXOCX(也是就是在控件的属性页上)作那些工作啊,如果是这样
那肯定不行的
可以如下:
1.导入原先MFC程序的对话框资源
在ActiveX控件的项目中加入对话框程序的rc文件,然后将对话框资源拖到控件资源中即可
(注意备份对话框程序文件)
2 .然后将对话框程序中对话框对应的.h和cpp文件拷贝到控件项目中,加入项目
3 接下来就是在控件CXXCtrl.cpp中Create这个对话框
在控件CXXXCtrl::OnCreate()函数中添加如下代码
在CXXXCtrl.h中先定义
对话框 变量 *dlg
if(dlg == NULL)
{
dlg = new CXXXXDlg;
dlg->m_hParentWnd = this->m_hWnd;
dlg->Create(IDD_XXXXX_DIALOG,this);
}
dlg->ShowWindow(SW_SHOW);
if(dlg != NULL)
{
CRect rect;
ZeroMemory(&rect,sizeof(CRect));
GetClientRect(&rect);
dlg->SetWindowPos(NULL,rect.left,rect.top,rect.Width(),rect.Height(),SWP_SHOWWINDOW);
}
这样就可以了,保准没问题,我就是这样把好多对话框程序转成ActiveX控件的
happydjl@163.net
OnCreate()
{}
OnDraw()
{}
http://www.codeguru.com/activex/dialogctrl.shtml