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

相关文章

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

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

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