MFC有三个选项:MFC ActiveX控件、MFC应用程序、MFC DLL,如何选择?

深耕AI

深耕AI:互联网行业 算法研发工程师

目录

MFC ActiveX 控件

控件的类型

标准控件

自定义控件

ActiveX控件

MFC ActiveX控件

标准/自定义控件

MFC ActiveX控件分类

3种MFC如何选择?

MFC ActiveX控件

MFC 应用程序

MFC DLL

总结

举例说明

MFC ActiveX 控件

    • 用途:用于创建ActiveX控件,这些控件可以嵌入到各种容器(例如网页、Microsoft Office应用程序、其他软件应用程序)中。
    • 场景:如果您的项目需要开发一个可以在不同软件环境中复用的控件,或者需要与其他基于COM的应用进行交互,这是一个合适的选择。

在软件开发中,“控件”是指用户界面中的元素或组件,它们可以接受用户输入或显示信息。控件可以是按钮、文本框、复选框、列表框、滑动条等。它们用于构建应用程序的图形用户界面(GUI),使用户能够与应用程序交互。

控件的类型

标准控件

标准控件,是由操作系统或开发框架(如MFC、Windows Forms、WPF等)预定义和提供的控件。它们通常包括基本的用户界面元素,开发人员可以直接使用这些控件来构建应用程序的界面。

  1. 按钮(Button):用于触发事件或操作。
  2. 标签(Label):用于显示文本。
  3. 文本框(TextBox):用于输入或显示文本。
  4. 复选框(CheckBox):用于表示二进制状态(选中或未选中)。
  5. 单选按钮(RadioButton):用于在一组选项中进行单一选择。
  6. 列表框(ListBox):用于显示列表项,用户可以选择其中的一项或多项。
  7. 组合框(ComboBox):组合了文本框和列表框的功能,用户可以输入文本或从下拉列表中选择。
  8. 滚动条(ScrollBar):用于滚动内容。
  9. 滑动条(Slider):用于选择数值范围内的值。
  10. 进度条(ProgressBar):用于显示任务的进度。
  11. 选项卡控件(TabControl):用于在同一窗口中显示多个选项卡页面。
  12. 菜单(Menu):用于提供用户操作的菜单项。

自定义控件

自定义控件,是开发人员根据特定需求创建的控件,它们不一定由操作系统或开发框架直接提供。自定义控件可以扩展标准控件的功能或提供完全新的功能和外观。

  1. 自定义按钮:一个具有特殊样式或行为的按钮,例如带有图标和动画效果的按钮。
  2. 图表控件:用于显示各种类型的图表(如柱状图、折线图、饼图等)。
  3. 自定义日期选择器:具有特定功能和外观的日期选择控件。
  4. 富文本编辑器:用于显示和编辑带有格式化文本的控件,比标准的文本框功能更强大。
  5. 自定义列表控件:提供特定布局和行为的列表项展示,例如带有图标、描述和操作按钮的复杂列表项。
  6. 地图控件:显示和交互地理信息的控件,例如Google Maps嵌入控件。
  7. 多媒体控件:用于播放音频、视频的控件,具有特定的控制和显示功能。

ActiveX控件

MFC ActiveX控件实际上是一个技术实现的分类,而不是控件本身的类型分类。在讨论标准控件和自定义控件时,我们主要关注的是功能和用途,而MFC ActiveX控件则关注的是实现方式和技术。

MFC ActiveX控件

MFC ActiveX控件是一种使用Microsoft Foundation Class (MFC) 库创建的ActiveX控件。ActiveX是一种软件组件技术,允许在不同应用程序之间共享功能。这种控件可以嵌入在其他应用程序(如网页、Microsoft Office应用)中,并提供特定的功能。

MFC ActiveX控件,本质上是控件的一种实现技术。它可以用来创建具有标准控件功能的控件或自定义控件功能的控件。因此,MFC ActiveX控件并不单独归类为标准控件或自定义控件,而是一个可以实现这两种控件的工具和技术。

标准/自定义控件

  • 标准控件:这些是由操作系统或开发框架预定义的控件,如按钮、文本框等。它们通常是现成的,可以直接使用并提供基本的用户界面功能。
  • 自定义控件:这些是开发人员根据特定需求创建的控件,可以扩展标准控件的功能或提供全新的功能和外观。

MFC ActiveX控件分类

MFC ActiveX控件本身可以是标准控件的实现,也可以是自定义控件的实现:

  1. 标准控件的实现:可以使用MFC创建一个ActiveX控件,该控件提供类似于标准控件的功能,如一个按钮控件或一个文本框控件,但它可以被嵌入到网页或其他应用程序中。
  2. 自定义控件的实现:也可以使用MFC创建一个高度定制的ActiveX控件,提供特定的功能和外观,这在标准控件中是找不到的。
问题:为什么MFC ActiveX控件不单独归类为标准控件或自定义控件?
实现方式的不同:MFC ActiveX控件是一种实现方式,关注的是使用MFC库来创建可以嵌入在其他应用程序中的控件。
用途的多样性:MFC ActiveX控件可以实现标准控件的功能,也可以实现自定义控件的功能,因此它不局限于标准控件或自定义控件的分类。

3种MFC如何选择?

MFC ActiveX控件

  • 选择这个选项时,您是在创建一个可以嵌入到其他应用程序中的控件。比如,您可以创建一个ActiveX控件,用于在Excel中显示特定类型的图表,或者在网页中嵌入一个视频播放器。
举个例子

如果您需要开发一个用户可以嵌入到他们的网页中的日历控件,您会选择“MFC ActiveX控件”项目类型。开发完成后,用户可以将这个日历控件嵌入到他们的网页中,从而在网页上显示和操作日历。

MFC 应用程序

    • 用途:用于创建基于MFC的独立Windows应用程序。MFC(Microsoft Foundation Class Library)提供了一个用于创建Windows应用程序的C++类库。
    • 场景:如果您需要开发一个完整的桌面应用程序,如文本编辑器、数据库管理工具或任何其他独立的Windows应用程序,这是一个理想的选择。

MFC DLL

    • 用途:用于创建动态链接库(DLL),这些库可以被其他应用程序调用。MFC DLL可以是静态MFC DLL(使用静态链接的MFC库)或动态MFC DLL(使用动态链接的MFC库)。
    • 场景:如果您的项目需要创建一个可复用的库,其他应用程序将会调用这个库中的功能,或者如果您的项目需要实现插件架构,这是一个合适的选择。

总结

  • MFC ActiveX控件:选择这个选项如果您需要创建一个可嵌入到其他应用程序中的控件。
  • MFC应用程序:选择这个选项如果您需要创建一个独立的Windows桌面应用程序。
  • MFC DLL:选择这个选项如果您需要创建一个动态链接库以便其他应用程序调用,或者实现插件功能。

举例说明

  • MFC ActiveX控件:开发一个自定义的图表控件,可以嵌入到Excel中使用。
  • MFC应用程序:开发一个文本编辑器,类似于Notepad。
  • MFC DLL:开发一个图像处理库,其他应用程序可以调用这个库中的图像处理功能。

根据我们的项目需求,选择合适的选项,可以更好地实现项目目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/886941.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

不只是前端,后端、产品和测试也需要了解的浏览器知识(二)

目录标题 一、业务系统呈现给用户的节点1. 输入 URL 并解析1.1 用户输入 URL 并按下回车键1.2 浏览器解析 URL1.3 DNS 解析 2. 建立连接、发送请求并接收响应2.1 建立 TCP 连接2.2 发送 HTTP 请求2.3 服务器处理请求2.4 发送 HTTP 响应2.5 浏览器接收响应 3. 解析和加载资源、渲…

模拟算法(4)_外观数列

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 模拟算法(4)_外观数列 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 题目链…

golang学习笔记27-反射【重要】

本节也是GO核心部分,很重要。包括基本类型的反射,结构体类型的反射,类别方法Kind(),修改变量的值。 目录 一、概念,基本类型的反射二、结构体类型的反射三、类别方法Kind()四、修改变量的值 一、概念,基本…

有些硬盘录像机接入视频汇聚平台EasyCVR后通道不显示/显示不全,该如何处理?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。该平台不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能,还支持多种主流标准协议,如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T 1400协…

Linux忘记root用户密码怎么重设密码

直接说步骤: 1.重启客户机 2.在选择内核页面快速按e键,进入编辑模式 进入后应该是这个样子 在这里只能按上下键切换行 找到Linux16这里 3.按右方向键切换到行尾,也就是UTF-8处,在后面添加一个空格,然后加上这段话 …

【ubuntu】ubuntu20.04安装chrome浏览器

1.下载 https://download.csdn.net/download/qq_35975447/89842972 https://www.google.cn/chrome/ 2.安装 sudo dpkg -i google-chrome-stable_current_amd64.deb 3.使用

SkyWalking监控SQL参数

前言 SkyWalking可以记录每个请求中执行的所有SQL,但是默认情况下,SkyWalking不记录SQL参数导致使用起来不是很方便,每次都得看日志才能知道具体的参数。不过SkyWalking提供了一个配置参数,开启后,便可记录SQL执行的参…

【目标检测】yolo的三种数据集格式

目标检测中数据集格式之间的相互转换--coco、voc、yolohttps://zhuanlan.zhihu.com/p/461488682?utm_mediumsocial&utm_psn1825483604463071232&utm_sourcewechat_session【目标检测】yolo的三种数据集格式https://zhuanlan.zhihu.com/p/525950939?utm_mediumsocial&…

CNN模型对CIFAR-10中的图像进行分类

代码功能 这段代码展示了如何使用 Keras 和 TensorFlow 构建一个卷积神经网络(CNN)模型,用于对 CIFAR-10 数据集中的图像进行分类。主要功能包括: 加载数据:从 CIFAR-10 数据集加载训练和测试图像。 数据预处理&#…

解决:使用layui.treeTable.updateNode,更新表格数据后,done里面的事件丢失问题

1. 背景 在给树形表格添加行点击事件,并且只更新当前行数据。 treeTable.updateNode("SpeProjListId", result.LAY_DATA_INDEX, result);更新数据后,点击事件失效。 1. 给字段绑定事件: class"link_a link_style" , {…

企业级数据备份一般都是怎么做的?来唠唠嗑

小白最近去了很多企业看了一下他们的存储方案,基本上都是单硬盘数据存储,一个硬盘10TB(实际可用8TB左右)。 这些大概是大部分微小企业存储数据的办法,也是他们能想到的最好办法了吧。 截至2024年的今天,咱…

Web安全 - 安全防御工具和体系构建

文章目录 安全标准和框架1. 国内安全标准:等级保护制度(等保)2. 国际安全标准:ISO27000系列3. NIST安全框架:IDPRR方法4. COBIT与ITIL框架 防火墙防火墙的基本作用防火墙的三种主要类型防火墙的防护能力防火墙的盲区 W…

【蚂蚁HR-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

CSS | 面试题:你知道几种移动端适配方案?

目录 一、自适应和响应式 二、为什么要做移动端适配? 三、当前流行的几种适配方案 (1) 方案一:百分比设置(不推荐) (2) 方案二:rem 动态设置 font-size px 与 rem 的单位换算 手动换算 less/scss函数 webpac…

C0004.Qt中QComboBox设置下拉列表样式后,下拉列表样式无效的解决办法

问题描述 我们平时在使用Qt Creator对控件QComboBox的样式进行设置后,在运行程序启动界面时,发现设置的样式无效,效果如下: /* 设置下拉菜单框的样式 */ QComboBox QAbstractItemView {border: 1px solid rgb(161,161,161); /* …

TransFormer 视频笔记

TransFormer BasicsAttention单头注意力 single head attentionQ: query 查寻矩阵 128*12288K key matrix 128*12288SoftMax 归一 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/19e3cf1ea28442eca60d5fc1303921f4.png)Value matrix 12288*12288 MLP Bas…

【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可…

鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发

注意 该接口的调用需要在开发者联盟申请设备基础信息权限与穿戴用户状态权限,穿戴用户状态权限还需获得用户授权。 实时查询穿戴设备可用空间、电量状态。订阅穿戴设备连接状态、低电量告警、用户心率告警。查询和订阅穿戴设备充电状态、佩戴状态、设备模式。 使…

基于大数据技术的颈椎病预防交流与数据分析及可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

【计算机网络】详解UDP协议格式特点缓冲区

一、UDP 协议端格式 16 位 UDP 长度, 表示整个数据报(UDP 首部UDP 数据)的最大长度;如果16位UDP检验和出错,报文会被直接丢弃。 1.1、检验和出错的几种常见情况 数据传输过程中的比特翻转:在数据传输过程中,由于物理介质或网络设…