(转发)ActiveX控件编写(OCX),及属性页访问控件类对象

2024-02-04 14:08

本文主要是介绍(转发)ActiveX控件编写(OCX),及属性页访问控件类对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:ActiveX控件编写(OCX),及属性页访问控件类对象

ActiveX控件编写:

由MFC向导直接生成ActiveX控件。编译即可得*.ocx控件。并注册到系统。

1.如需显示自定义对话框:

// <span style="font-family: Arial, Helvetica, sans-serif;">CMyCtrl</span><span style="font-family: Arial, Helvetica, sans-serif;">消息处理程序</span>int <span style="font-family: Arial, Helvetica, sans-serif;">CMyCtrl</span>::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (COleControl::OnCreate(lpCreateStruct) == -1)return -1;// TODO:  在此添加您专用的创建代码m_dlgMain.Create(IDD_DLG_MAIN,this);<span style="color: rgb(0, 204, 204); font-family: Arial, Helvetica, sans-serif;">//创建</span>m_dlgMain.ShowWindow(SW_SHOW);return 0;
}
void CMyCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{if (!pdc)return;// TODO: 用您自己的绘图代码替换下面的代码。m_dlgMain.m_strTitle = m_StrTitleName;<span style="color: rgb(0, 204, 204); font-family: Arial, Helvetica, sans-serif;">//更改标题</span>m_dlgMain.MoveWindow(rcBounds);<span style="color:#00cccc;">//将自定义对话框Move到该控件视即可</span>
}

2.属性页添加属性持久化及获取

CMyCtrl* CMyPropPage::GetControlClass()//获取控件类指针,这是微软官方给的代码
{CAlarmsDisplayCtrl *pMyCtrl;ULONG Ulong;// Get the array of IDispatch pointers that is stored in the property page.LPDISPATCH FAR *lpDispatch = GetObjectArray(&Ulong);// Get the CCmdTarget object that is associated with any one of the previous// array elements.pMyCtrl = (CAlarmsDisplayCtrl*)FromIDispatch(lpDispatch[0]);// Cleanupreturn pMyCtrl;
} 
void CMyPropPage::DoDataExchange(CDataExchange* pDX)
{if(pDX->m_bSaveAndValidate==0)//初始化,load{// Get the array of IDispatchs stored in the property pageCMyCtrl *pCtrl = GetControlClass();if (pCtrl){m_strTitle = pCtrl->m_StrTitleName;}}DDP_PostProcessing(pDX);DDX_Control(pDX, IDC_EDIT_TITLE, m_edtTitle);DDP_Text(pDX,IDC_EDIT_TITLE,m_strTitle,_T("StrTitleName"));DDX_Text(pDX,IDC_EDIT_TITLE,m_strTitle);if(pDX->m_bSaveAndValidate !=0)//结束保存{CMyCtrl *pCtrl = GetControlClass();if(pCtrl){pCtrl->m_StrTitleName = m_strTitle;pCtrl->SetModifiedFlag();pCtrl->Invalidate();}}
}

如果获取到的控件指针一直是NULL请在控件的构造函数中添加:

CMyCtrl::CMyCtrl()
{InitializeIIDs(&IID_DMy, &IID_DMyEvents);// TODO: 在此初始化控件的实例数据。m_xInnerUnknown = 0; 
}

如果控件中包含其他的ActiveX控件如MS Web Browser导致的Create失败,请在InitInstance中添加:AfxEnableControlContainer();

这篇关于(转发)ActiveX控件编写(OCX),及属性页访问控件类对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677754

相关文章

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字