CImageList的OverlayImage的应用

Fabric.js 使用图片遮盖画布(前景图) theme: smartblue 我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第16篇文章,点击查看活动详情 本文简介 点赞 + 关注 + 收藏 = 学会了 在 《Fabric.js 使用纯色遮挡画布(前景色)》 中讲到使用纯色的方式遮盖画布。如果你的常见需要使用图片来遮盖的话,fabric.js 也提供了相应的属性来配置。 相比起使用纯色遮盖画布,使用图片会更复杂。 ... 阅读详情

引言

相信大家在安装自己的电脑的时候,或多或少都用过系统的“设备管理器”吧,当电脑中某些设备的驱动不正常的时候,在设备管理器中该设备的节点图标上会出现一个叹号(或者是出现一个叉号)!那么这个功能是如何实现的呢?

原理

查阅msdn的CImageList,看到CImageList有这样一个方法:SetOverlayImage

CImageList::SetOverlayImage

BOOL SetOverlayImage( int nImage, int nOverlay );

Return Value

Nonzero if successful; otherwise 0.

Parameters

nImage

Zero-based index of the image to use as an overlay mask.

nOverlay

One-based index of the overlay mask.

Remarks

Call this function to add the zero-based index of an image to the list of images to be used as overlay masks. Up to four indices can be added to the list.

An overlay mask is an image drawn transparently over another image. Draw an overlay mask over an image by using the CImageList::Draw member function with the one-based index of the overlay mask specified by using the INDEXTOOVERLAYMASK macro

从这段话中(特别注意红色下划线的一句),我们可以知道,通过把一个imag设置为overlay,那么就可以把该image合成到其它的image之上了,这样就能够达到设备管理器中的那种效果了。

实现

下面就给出实现类似于设备管理器效果的部分代码。

SP_CLASSIMAGELIST_DATA imageClass; // 设备image

CImageList imageDriver;

 

imageClass.cbSize = sizeof ( SP_CLASIMAGELIST_DATA );

VERIFY ( SetupDiGetClassImageList ( &imageClass ) ); // 获取设备类image

imageDriver.Attach ( imageClass.ImageList );

 

// 下面开始设置overlaymask

//

// 在SP_CLASSIMAGELIST_DATA中,最后三个image是作为overlay image

// 来使用的,其中倒数第三个就是用于标明驱动不正常的叹号图标

//

int nImageCount = imageDriver.GetImageCount ();

imageDriver.SetOverlayImage ( nImageCount – 3, 1 );// 把倒数第三个image作为第一个overlay image

// 同样可以设置倒数第二个image为overlay image

//

 

// 以上只是对于使用overlay image的必要初始化设置而已

// 具体使用的时候,还是要用到具体的控件的方法的,就以树控件为例子,

// 为了能够实现这种效果,需要调用树控件的SetItemState方法来使overlay

// image生效

CTreeCtrl drvTree;

drvTree.SetImageList ( &imageDriver, TVSIL_SMALL );

 

// 设置某个节点的overlay image

drvTree.SetItemState ( hItem,

INDEXTOOVERLAYMASK(1),

VIS_OVERLAYMASK );

 

//

// 注:至于列表控件(CListCtrl)的用法一样,也需要调用CListCtrl::SetItemState来实现某行的 overlay image。

 

 

前端可视化:Fabric.js HTML5 canvas 工具库 Fabric.js 是一个功能强大且操作简单的 Javascript HTML5 canvas 工具库。缩放 scaleX 和 scaleY。反转 scaleX 和 scaleY。平移 top 和 left。以鼠标指针为基准缩放画布。fabric 内置滤镜。旋转角度 angle。以原点为基准缩放画布。自定义边和控制角样式。...... 阅读详情

相关推荐

matlab开发-Imageoverlay

matlab开发-Imageoverlay。使用指定的颜色将二进制遮罩覆盖到图像上

fabric.js 中文教程第四部分

fabri.jc中文教程第四部分,介绍了自由绘制,自定义,在Node上使用fabric.js等功能

sj_wl的博客 5227

UNext:基于 MLP 的快速医学图像分割网络

有代码,可深入学习轻量级分割模型的论文切入点 UNet 及其最新扩展(如 TransUNet)近年来一直是领先的医学图像分割方法。然而,这些网络无法有效地用于应用中的快速图像分割,因为它们参数繁重、计算复杂且使用缓慢。为此,我们提出了 UNeXt,它是一种基于卷积多层感知器(MLP)的图像分割网络。我们以有效的方式设计了 UNeXt,其中包括早期卷积阶段和潜在阶段的 MLP 阶段。我们提出了一个标记化的 MLP 块,我们可以在其中有效地标记和投影卷积特征,并使用 MLP 来对表示进行建模。

Philo的博客 3941

Windows Shell编程-第四章.文件的本质

第四章 文件的本质          以前,所有文件和目录都有一个确定的属性集:时间,日期,尺寸,以及表示‘只读的’,‘隐藏的,‘存档的’,或‘系统的’状态标志。然而,Windos95(及后来的WindowsNT4.0)出现使这些概念产生了改变,其中最重要的‘文件’变得更加广泛。现在,文件可以是任何Shell部件对象—不一定必须是文件系统的部件。          文件的精确定义是,任何作为S

ljmwork的专栏 1116

医学成像学习笔记(一):核磁共振成像(MRI)k空间为何是图像频谱详解

前言   k空间是核磁共振成像图像重建的核心,可能很多人像笔者一样第一次学时会非常疑惑,为何k空间是图像的频域空间,观其填充过程,明明是空域信号的采样填充呀。网上很少有文章讨论这个问题,所以笔者在此写下自己的理解,供大家参考。 MRI位置编码   现在的MRI一次扫描的是一个断层或者多个断层,所谓断层就是一个有厚度的面,通过z方向梯度场来选择。我们扫描一个断层的目的是为了获得该断层各位置的质子情况,它们携带着组织的性质信息,反应出来的就是信号强度。如果整个断层都采用相同的磁场强度,而我们只能得到一个断

意疏的学习笔记 1万+

树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW

树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW2008-03-20 21:17 TVINSERTSTRUCT 包含添加新项到树形视控件所使用的信息。这个结构被TVM_INSERTITEM消息

basketball in c++ 1423

扩增子测序|iCAMP包——基于系统发育零模型分析确定性和随机性在群落构建过程R中实践

iCAMP的核心功能是通过系统发育分箱的零模型分析,量化不同生态过程的相对重要性。,用于评估不同生态过程(同质选择、异质选择、扩散和漂变)对整个群落及各个系统发育分箱(bin)的相对重要性。该方法也成为nature,science系列文章的常客,深受大家喜欢,在文章中运用该方法将为论文增色不少。外环和内环的圆环图显示了每个门(或变形菌门的分类)中不同过程的相对重要性。中央是系统发育树,内环展示了不同过程的相对重要性,表示每个系统发育箱中的DL。示例代码中提供了数据和代码,已经小编测试,可直接运行。

weixin_46814750的博客 6230

Virtual List的使用方法

Virtual List(虚拟列表)是LVS_OWNERDATA 样式的List Ctrl.默认的ListCtrl在插入大量的数据时会变得很慢.在我的破机器上插入不到一万行的数据要几十秒,非常令人不爽.而用VirtualList可以大大加快速度。Virtual List不拥有数据,当需要显示一行时才发消息向父窗口查询显示内容。VirtualList的使用方法与普通List Ctrl稍微

向往大海专栏 6541

ZYNQ裸机LWIP双网口实现

文章目录前言一、LWIP双网口二、使用步骤1.部分说明2.部分代码总结 前言 一、LWIP双网口 由于项目需要多通讯口,查阅资料发现lwip支持多网口操作。于是,就开搞了。 二、使用步骤 1.部分说明 利用xemac_add函数在网卡链表中添加一个网卡,即使用netif块重复xemac_add操作。 先用轮询的方式实现双网口,后期修改为中断模式 2.部分代码 导入官方例程LWip echo server, 修改main函数,增加一个netif块 #if LWIP_IPV6==0 #if L..

weixin_35865280的博客 1万+

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

VC中树形控件(CTreeCtrl)的使用

树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW TVINSERTSTRUCT 包含添加新项到树形视控件所使用的信息。这个结构被TVM_INSERTITEM消息使用。这个结构与TV_INSERTSTRUCT结构是一样的,但它已经按当前的命名习惯重命名了。 typedef struct tagTVINSERTSTRUCT { HTR...

yingyingol 225

Kimodo 入门教程(一)英伟达开源人形机器人动捕数据集训练运动学动作扩散模型

Kimodo是一个基于700小时商用光学动作捕捉数据集训练的运动学动作扩散模型,能够生成高质量的人体和机器人3D动作。该模型支持通过文本提示和多种约束条件(如关键帧、末端执行器位置等)进行控制,并提供数字人类和类人机器人两种模型变体。安装方式包括软件包安装和源代码安装两种,需要配置HuggingFace令牌以访问文本编码器。推荐使用GPU加速,最低需要17GB显存。项目提供命令行生成和交互式演示两种使用方式,演示程序支持时间轴编辑和实时3D可视化。模型分为商用友好版和受限版,其中SMPL-X版本需要额外申请

2506_90492529的博客 1926

CTreeCtrl第三课

  昨天对CTreeCtrl的TVITEM进行学习时,没有完,现在开始吧。TVITEMEX比TVITEM多的最后一个成员在昨天已经学习了,就是用来设置项高的。对于其他的两个结构是相同的了。那下面就学习一下TVITEM结构吧。该结构如下:typedef struct tagTVITEM{    UINT      mask;    HTREEITEM hItem;    UINT      st

走出憧憬的专栏 2059

基于Python的上市公司年报PDF文本抓取与财务风险分析系统

随着大数据时代的到来,金融数据分析已成为投资决策和风险管理的重要工具。上市公司年报包含了丰富的财务信息和经营数据,通过对这些数据的提取和分析,可以评估公司的财务状况和潜在风险。本文将详细介绍如何使用Python构建一个完整的上市公司年报文本抓取与财务风险分析系统,涵盖PDF文本提取、数据清洗、财务指标计算和风险分析等全流程。

2201_76125261的博客 311

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ImageList_SetOverlayImage

ImageList_SetOverlayImage

882

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CTreeView树视类使用

新建以CTreeView为视基类的单文档应用程序。 树控件通常和图像列表控件一起使用,在树控件中可以显示图像列表中的图标,即为树控件添加图标。 (1)创建位图 在资源编辑器中,添加一个包括所有图标的位图资源,在此位图中每个图标都是16*16像素大小,用户可以改变大小,不过必须为正方形。 (2)添加用于存放图像列表的成员变量 CImageList m_image; (3)创建并设置图像列...

java开发指南博客 【转载】 376

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

CImageList

<br /><br />CImageList<br />百科名片<br />图像列表控制(CImageList )是相同大小图像的一个集合 ,每个集合中均以0 为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式 。可以利用WINDOWS32 位应用程序接口函数API 来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95 及以后版本才能实现。<br />数据成员<br />m_hImage

uda1985的专栏 1万+

图像覆盖特效Image Overlay

分享一款鼠标经过图像覆盖特效Image Overlay,具有六种不同的覆盖效果,兼容目前所有主流浏览器。   demo演示     下载地址  

iteye_16836的博客 2067

使用虚列表和自画实现文件夹的缩略图显示

本示例演示了列表控件的虚列表和自画功能,也演示了一些系统外壳的函数和接口的使用方法。单击 这里 下载本文的代码。如果在编译示例程序的时候出现问题,你需要去http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ 升级你的头文件和库文件预备性阅读在阅读本文之前,建议先对列表视图控件和系统外壳有一个基本的了解。建议阅读以下SDK文

蒋晟的专栏 1万+

C++读设备管理器信息 计算机管理信息 串口列表、描述信息等 只显示存在的串口源码 解决中文乱码

// PrintDeviceInfo.cpp : 定义控制台应用程序的入口点。 // #include <stdio.h> #include <locale.h> #include <Windows.h> #include <setupapi.h> #pragma comment(lib, "setupapi.lib") void PrintDevicesInfo1() { HDEVINFO hDevInfo = SetupDiGetClas...

chenhao0568的专栏 2119

leaflet插件imageOverlay简单用法

&amp;lt;html&amp;gt;&amp;lt;head&amp;gt; &amp;lt;title&amp;gt;Leaflet class diagram - Leaflet&amp;lt;/title&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt; &amp;lt;meta name=&quot

qq_38354883的博客 5137

Leaflet加载图片-imageoverlay

原文地址  http://kempe.net/blog/2014/06/14/leaflet-pan-zoom-image.html leaflet使用imageoverlay加载图片,转载 Using leaflet.js to pan and zoom a big image 14 Jun 2014 I recently used leaflet.js to e

SUN 的博客 7900
上一篇: XML4C完美兼容中文的补充
下一篇: DOS游戏通用说明
flyelf
博客等级 码龄25年 261粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值