当前位置:文档之家› 2019年整理ActiveX控件制作

2019年整理ActiveX控件制作

这些页分别显示常用颜色、字体和图片属性的用户界面。 添加:在MyclockCtl.cpp中找到 BEGIN_PROPPAGEIDS( CSampleCtrl, 4 )
PROPPAGEID( CMyPropPage::guid ) PROPPAGEID( CLSID_CFontPropPage ) PROPPAGEID( CLSID_CColorPropPage ) PROPPAGEID( CLSID_CPicturePropPage )END_PR OPPAGEIDS(CSampleCtrl) 请注意,BEGIN_PROPPAGEIDS 宏中的属性页数为 4。它表示 ActiveX 控件支持的属性页数。
NULL);
}
三.属性页控件变量关联到属性
1.在项目类中添加一个属性propname (名字中不要有下划线)。
错误:Invalid OLE external name : prop_name。是因为名字不符合规则
添加自定义属性页
如果系统提供一个自定义属性页不够用。则按以下步骤添加:
1.ActiveX工程中,资源视图中“Dialog”节点,添加 Dialog并选择 IDD_OLE_PROPPAGE_SMALL。并 修改其名字。
2.在类向导中,添加新类,注意其基类和 dialogID(选择你新建的对话框).
我们先定义个设置的值是 IDS_Camera_IP_CAPTION(名字)。
在这个属性页类的构造函数 由newPropPage::newPropPage() : COlePropertyPage(IDD,0) 改为:newPropPage::newPropPage() : COlePropertyPage(IDD,
PROPPAGEID(newPropPage::guid) PROPPAGEID(classname::guid) END_PROPPAGEIDS(CClockCtrl) 改变其总数,并将新建的属性页其加入
4. 完善属性页
二.设置自定义属性页的名字
在资源的string table中添加两个string一 个是新建属性页的标题,一个是新建属性页 的名字。(在字符表中修改后,必须在程 序中对应位置修改)
{

if (bRegister)

return
AfxOleRegisterPropertyPageClass(AfxGetInstance Handle(),

m_clsid, IDS_VIDEO_Camerapara);

else

return AfxOleUnregisterClass(m_clsid,
I标题,出现空指针。再定义一个标题:
IDS_VIDEO_Camerapara(options标题)
BOOL Ccameraparam::CcameraparamFactory::UpdateR egistry
(BOOL bRegister)
下面学习添加属性和方法。
控件注册与注销
控件必须注册才可以使用。在globals中有注册函 数DllRegisterServer和注销函数 DllUnregisterServer。
Vc++编译控件时,最后对ACtivx控件调用全局 函数进行注册。
可以手动注册:开始->运行->regsvr32 E:\Clock.ocx 或者vc++->tool->register control
注意 如果不能访问控件常用属性页,可能
是因为没有在当前的操作系统中正确地注 册 MFC DLL (MFCxx.DLL)。导致这种情 况的原因通常是安装了 Visual C++和。 Net多个MFC库,
如果常用属性页不可见通过在命令行中用 DLL 的完整路径名运行 RegSvr32.exe 来注册 DLL。 。
ActiveX控件制作
在系统开发过程中,控件的使用可以有效 的帮助程序的开发,但是系统提供的控件 不能满足用户的所以要求。于是我们可以 开发满足自己要求的Activx控件。
下面介绍一个简单ACtivx控件的制作
1,新建MFC Activx control wizard工程, 名为MyClock,选择创建空的工程。生成的 控件有3个类和2个接口。

{

FireNewMinute();

}
CString str=time.Format("%H:%M:%S");
pdc->TextOut(0,0,str);
得到时间时静止的,可以设置一个时钟函数,更新 时间
添加常用属性页
MFC 提供了三个与 ActiveX 控件一起使用的常用属性页: CLSID_CColorPropPage、 CLSID_CFontPropPage 和 CLSID_CPicturePropPage。
3程序中添加:程序中有个属性页表 添加头文件 #include "classname.h" 修改属性表 BEGIN_PROPPAGEIDS(CClockCtrl, 4) PROPPAGEID(CClockPropPage::guid) PROPPAGEID(CLSID_CColorPropPage)
应用程序类:CMyclockApp 主窗口类:CMyclockCtrl 对话框类,显示控件属性页
CMyclockPropPage 接口是外部调用控件功能的函数集合,
一些纯虚函数,在主窗口类中进行实现
运行时选择下面的方式:控件是无法独立运行,必须使用 容器来测试控件。
查看其方法和属性页:方法只有aboutBox,属性页为空。
控件注销,使用regsvr32 程序, regsvr32 /u E:\Clock.ocx 注销
默认生成的控件功能是在CMyclockCtrl :: ondraw中画一个椭圆。可以修改为下面时间函 数
CTime time=CTime::GetCurrentTime();
if(0==time.GetSecond())
相关主题