(转发)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

相关文章

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用