如何将基于mfc对话框的程序转变成ActiveX控件?

gchao3325 2003-08-20 08:48:54
我编了一个基于对话框的画图程序,主对话框上有复选框,有编辑框,有按钮,根据复选框和编辑框的设定赋值,点击按钮后通过DoModal()调出另一个对话控作为画布,然后通过OnPaint函数画出图象。已经运行成功了,然后我建了一个MFC ActiveX ControlWizard项目,让后像在MFCAppWizard里那样在上面添加对话框,添加控件,编辑代码,编译也通过了,但是最后测试时只有一个矩形区域里的一个椭圆,这是怎么回事啊?我根本就没有画椭圆,只是代码中有画过圆形,而且还有其他的图形,以前在MFCAppWizard里应该有的两个对话框也没了,该怎么办啊?请高手给我详细的解说一下。
...全文
162 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2003-08-27
  • 打赏
  • 举报
回复
你创建的控件的唯一的子窗口就是一个对话框
我就是这么干的

Command what is yours
Conquer what is not
flydjl 2003-08-27
  • 打赏
  • 举报
回复
楼主:

你是不是在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
Tigsen 2003-08-25
  • 打赏
  • 举报
回复
你把资源导入到其工程即可,相信wo没错
eHuaTian 2003-08-24
  • 打赏
  • 举报
回复
建了一个MFC ActiveX ControlWizard项目,然后所有的操作与MFC中相同。
但注意你所要的一些初始界面可以先在一个上设计Form。好象VChelp上有相关的代码
gchao3325 2003-08-24
  • 打赏
  • 举报
回复
看来是没的治了。唉,郁闷啊。
mashimaro3600 2003-08-22
  • 打赏
  • 举报
回复
kingzai给的地址好阿

helloair(老婆,我只要十块钱) :你比我还要惨阿----我老婆每个礼拜都给我10块钱零花钱
mashimaro3600 2003-08-22
  • 打赏
  • 举报
回复
老汉我吐血斗余
gchao3325 2003-08-22
  • 打赏
  • 举报
回复
小弟愚笨,现在也到交工期了,因此非常希望大侠们在空闲时帮小弟作一个,初始时是一个对话框,上面有两个按钮,一个编辑框,一个复选框,点击一个按钮会弹出另一个对话框作为画布,每秒在上面画一条直线,点击另一个对话框会选中所有的复选框。小弟原倾所有分数来换取这样的activex控件,忘高手帮忙。我的邮箱:gchao3325@sina.com
helloair 2003-08-22
  • 打赏
  • 举报
回复
mashimaro3600(爱吃白菜|改造社会~惩处腐败~教育免费) ( ) 信誉:100

kingzai给的地址好阿

helloair(老婆,我只要十块钱) :你比我还要惨阿----我老婆每个礼拜都给我10块钱零花钱

@_@ 5555~~~~~~~~~~
helloair 2003-08-21
  • 打赏
  • 举报
回复
OnCreate()
{}
OnDraw()
{}
kingzai 2003-08-21
  • 打赏
  • 举报
回复
http://www.codeguru.com/activex/dialogctrl.shtml
bluestar 2003-08-21
  • 打赏
  • 举报
回复
在C****Ctrl的成员函数OnDraw里默认花的椭圆,你可以在此做动作。
gchao3325 2003-08-21
  • 打赏
  • 举报
回复
能不能详细点啊?复选框,编辑框,按钮等,这些在对话框上的控件如何在程序中发挥作用啊。
LeeZi 2003-08-21
  • 打赏
  • 举报
回复
MFC ActiveX ControlWizard建出来的project缺省就是画一个椭圆的。
因此你可以找到画椭圆的地方做相应的修改。
gchao3325 2003-08-21
  • 打赏
  • 举报
回复
难道不能做吗?不会吧?亟盼高手指点。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧