如何用CreateWindow动态创建第三方控件(如dbgrid.OCX)子窗体

bluearth 2004-06-12 02:15:06
一般都用CreateWindow动态创建一些通用控件,如按钮等,对于这些,由于我们知道它的类名,创建很简单,我想知道的是,对于那些我们只在注册表中注册的ocx控件,比如dbgrid.OCX,Timer.OCX,还有一些我们自己做的ocx控件,不知道它的类名是什么,怎么动态创建哪?
我想实现类似于vb集成开发环境的功能:凡是注册过的ocx控件,都能在组件中找到,并可以将其子窗口放到view上,请大侠们帮忙!多谢
...全文
284 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluearth 2004-06-15
  • 打赏
  • 举报
回复
CHTMLView是个类呀,它的源代码我还是没有找到,是那个MFCIE么,怎么不对啊,代码里没有CreateControl啊?
蒋晟 2004-06-14
  • 打赏
  • 举报
回复
using CWnd::CreateControl
蒋晟 2004-06-14
  • 打赏
  • 举报
回复
是MFC的源代码,在VC的安装目录下
bluearth 2004-06-14
  • 打赏
  • 举报
回复
TO:jiangsheng(蒋晟.MSMVP2004Jan) 您说得程序是不是那个MFCIE,我从msdn上down下来,发现它实现的是一个浏览器的功能,并没有用到CWnd::CreateControl。是不是我找错了?
luoxiangdong 2004-06-14
  • 打赏
  • 举报
回复
刚才好象见过类似的帖子,用guid或对象名创建
蒋晟 2004-06-14
  • 打赏
  • 举报
回复
CHTMLView的源代码里面有
bluearth 2004-06-14
  • 打赏
  • 举报
回复
多谢jiangsheng(蒋晟.MSMVP2004Jan) ,能给个例子么?
bluearth 2004-06-13
  • 打赏
  • 举报
回复
谢谢楼上,但可能你们没理解我得意思,我是想动态创建控件,
也就是我要实现您上面说得功能,我要自己做一个编辑环境,类似于一个简单的VB开发环境。
而不是在VC或VB的环境下添加控件,是在我自己做的EXE程序中动态添加。也就是说一旦控件注册,在我得程序中就能将其列出(是不是需要对注册表操作?),并能够将控件子窗体画在我的视图窗口上。
bluearth 2004-06-13
  • 打赏
  • 举报
回复
多谢多谢,应该是用到COM的知识对吧,哪位有类似的例子么?请给我发一份
bluearth_ldt@163.com
ZHANG9652 2004-06-13
  • 打赏
  • 举报
回复
你要知道该ocx的clsid,然后用coCreateInstance来创建,要使ocx的界面显示出来,必须要有一个容器,具体方法可到com版找找,我不记得了
hahu 2004-06-12
  • 打赏
  • 举报
回复
另外直接可以
project -> add to project -> components and controls
添加
hahu 2004-06-12
  • 打赏
  • 举报
回复
总该有个名称吧
在窗体编辑器里面,右键插入activeX控件
里面可以找到这些ocx控件
找到你要的,
确定
然后给Dlg插入这个activeX的Control变量
VC会提示添加这个activeX包含的几个cpp和h文件
然后就直接可以用了
zhangcrony 2004-06-12
  • 打赏
  • 举报
回复
what?

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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