listbox 中动态创建图标

嵌入式GUI开发实战:emWin核心控件ICONVIEW、IMAGE、LISTBOX深度解析 在嵌入式系统开发中,图形用户界面(GUI)是实现人机交互的关键组件,其核心在于高效管理有限的硬件资源(如内存、CPU)。GUI控件作为构建界面的基础模块,其设计原理直接影响应用的性能和用户体验。通过理解控件的底层工作机制,开发者可以优化内存使用、提升渲染效率并实现流畅的交互。在嵌入式GUI库中,图标视图(ICONVIEW)、图像显示(IMAGE)和列表框(LISTBOX)是处理复杂界面布局、多媒体内容展示和列表数据交互的核心技术。这些控件通过网格化布局、多格式图像解码和状态管理等机制,为工业HMI、智能设备 阅读详情

 图标制作 参照http://hi.baidu.com/plpcha/blog/item/2f1beb18a2b09b0535fa41b8.html

 

在symbian 5th 中,动态 创建listbox 的 图标首先在 mmp文件中 添加图片资源

 

 

START BITMAP **.mbm
 HEADER
 TARGETPATH /resource/apps
 SOURCEPATH ../gfx
 SOURCE c12,1 list_icon.bmp list_icon_mask.bmp
 SOURCE c12 contact.bmp contact_mask.bmp inbox.bmp inbox_mask.bmp keymsg.bmp keymsg_mask.bmp newmsg.bmp newmsg_mask.bmp outbox.bmp outbox_mask.bmp sent.bmp sent_mask.bmp textmsg.bmp textmsg_mask.bmp
END

 

然后在想使用图片的地方

 

SetupListBoxIconsL()
 {
 CArrayPtr< CGulIcon >* icons = NULL;  
 icons = new (ELeave) CAknIconArray( 2 );//图标数量
 CleanupStack::PushL( icons );
 CGulIcon* icontext;
 // for EListBoxEncrptomessagingList_iconIndex
 icontext = LoadAndScaleIconL(
   KEncrptoMessagingFile, EMbmEncrptomessagingTextmsg, EMbmEncrptomessagingTextmsg_mask,
   NULL, EAspectRatioPreserved );
 
 CGulIcon* iconkey;
 // for EListBoxEncrptomessagingList_iconIndex
 iconkey = LoadAndScaleIconL(
   KEncrptoMessagingFile, EMbmEncrptomessagingKeymsg, EMbmEncrptomessagingKeymsg_mask,
   NULL, EAspectRatioPreserved );
 
 CleanupStack::PushL( icontext );
 icons->AppendL( icontext );
 CleanupStack::Pop( icontext );
 
 CleanupStack::PushL( iconkey );
 icons->AppendL( iconkey );
 CleanupStack::Pop( iconkey );
 CleanupStack::Pop( icons );
 
 if ( icons != NULL )
  {
  iListBox->ItemDrawer()->ColumnData()->SetIconArray( icons );
  }
 }

 

动态 添加

 

void LoadMessageItem()
 {
 

 
  _LIT( KItemStartText, "0/t" );
  _LIT( KItemStartKey, "1/t" );
  // New item text
 
 for(TInt i = 0;i<count; i++)
  {
  DEBUG_ASSERT(inbox.GetMessage(i));
  
  TTime time = inbox.GetMessage(i)->GetTime();
  const CRecipientsList& iRecipientsList = inbox.GetMessage(i)->GetRecipientsList();
  

  TBuf<50> itemText;
  if(**)
   {
   itemText.Insert( 0, KItemStartKey() );
   }
  else
   {
   itemText.Insert( 0, KItemStartText() );
   }
  
  itemText.Append(timeText);
  itemText.Append(iRecipientsList.GetRecipients(0)->GetFirstName());
  itemText.Append(iRecipientsList.GetRecipients(0)->GetGivenName());
  // Item array. By default iListBox owns the item array, so no
  // deletion is needed.
  CDesCArray* temArray =
   static_cast<CDesC16ArrayFlat*>(iListBox->Model()->ItemTextArray());
   
   temArray->InsertL( i, itemText );
   
   

  }

 iListBox->HandleItemAdditionL();
 }

 

 

 

深入解析emWin三大核心控件API:ICONVIEW、IMAGE与LISTBOX实战指南 在嵌入式GUI开发中,控件API是构建交互界面的基石,其设计原理直接影响应用性能与用户体验。理解控件API的核心在于掌握其内部状态管理、资源调度与消息传递机制,这有助于开发者编写出更高效、更稳定的代码。从技术价值看,精细化的API控制能有效优化内存使用、提升渲染效率并增强界面响应能力,是嵌入式系统资源受限场景下的关键优化手段。应用场景广泛覆盖从工业HMI、车载仪表到智能家居等各类嵌入式设备界面。本文聚焦emWin图形库,以ICONVIEW(图标视图)、IMAGE(图像控件)和LISTBOX(列表框)这三个高 阅读详情

相关推荐

emWin嵌入式GUI开发:IMAGE与LISTBOX控件深度解析与实践

在嵌入式系统开发中,图形用户界面(GUI)是连接用户与设备的关键桥梁,其核心在于高效、可靠的控件实现。控件作为GUI的基本构建单元,通过封装图形绘制、事件处理等复杂逻辑,显著提升了开发效率并降低了资源占用。其技术价值在于,开发者无需从底层像素操作开始,便能快速构建直观的交互界面,这对于资源受限的嵌入式环境至关重要。典型的应用场景包括工业HMI、医疗仪器和智能家居面板等对实时性和可靠性要求极高的领域。本文聚焦于emWin这一成熟的嵌入式图形库,深入探讨其两个核心控件:负责图像显示的IMAGE控件和负责列表交互

weixin_34116110的博客 588

VC++2005 MFC ListBox

转自:http://blog.youkuaiyun.com/flyfish1986/article/details/2997231 VC++2005编程 VC++2005 MFC ListBox(列表框)的使用 作者:邵盛松 2008年9月29日星期一 ListBox的操作比较简单 1添加数据 声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBo

robinson_911的专栏 1440

嵌入式GUI开发实战:emWin三大核心控件ICONVIEW、IMAGE、LISTBOX详解

在嵌入式系统开发中,图形用户界面(GUI)是实现人机交互的关键组件,其核心在于高效管理图形元素与用户输入。emWin作为一款专业的嵌入式GUI库,通过面向对象的设计思想,在C语言层面实现了控件的封装与消息机制,为资源受限的嵌入式设备提供了流畅的交互体验。其技术价值在于将复杂的图形渲染和事件处理抽象为可复用的控件,显著提升了开发效率。在实际应用中,ICONVIEW控件常用于构建图标导航界面,IMAGE控件支持多种图像格式的高效显示,而LISTBOX控件则实现了灵活的数据列表与选择交互。本文聚焦于这三个核心控件

weixin_34185512的博客 330

MFC-动态创建控件并使用的方法

CListBox* newLisBox = new CListBox(); // newLisBox->SetParent(&m_tab); CRect rc; m_tab.GetClientRect(rc); rc.top += 20 + GroupItemCount*(50+10); rc.bottom = rc.top+50; rc.left += 0; rc.right -= 0; newLisBox->Create(W...

u011555996的博客 846

emWin KNOB与LISTBOX控件深度解析:从API原理到工业HMI实战应用

在嵌入式GUI开发中,控件是构建人机交互界面的基础单元,其核心原理在于将用户操作映射为系统可处理的逻辑事件。以emWin为代表的嵌入式图形库,通过精心设计的API抽象层,实现了控件状态管理、事件响应与渲染绘制的解耦,从而在资源受限的嵌入式平台上平衡了功能丰富性与运行效率。这种设计为工业HMI、消费电子等场景提供了稳定可靠的交互组件,其技术价值体现在通过可配置的参数体系(如KNOB的Tick、Range)和可扩展的绘制机制(如LISTBOX的所有者绘制),满足从简单参数调节到复杂数据列表的多样化需求。本文聚焦

weixin_34110749的博客 414

嵌入式GUI开发实战:emWin高级控件ICONVIEW、IMAGE、KNOB、LISTBOX深度解析

在嵌入式系统开发中,图形用户界面(GUI)是连接用户与设备的关键桥梁。其核心原理在于通过事件驱动模型和窗口管理器,将用户交互转化为系统消息,实现界面与逻辑的分离。这一技术价值在于能大幅提升开发效率,降低代码复杂度,并保证UI行为的一致性。在资源受限的嵌入式环境中,高效的内存管理和绘制优化(如使用内存设备)尤为重要,这直接关系到界面的流畅度与稳定性。这些技术广泛应用于工业触摸屏、医疗仪器、智能家居中控等场景。本文聚焦于emWin图形库中的四个高级控件:ICONVIEW(图标视图)和LISTBOX(列表框),它

weixin_34235457的博客 368

CListBox自绘

代码下载:点击打开链接

小米的修行之路 919

WinForm控件添加与布局实战:从拖拽到动态创建与自适应界面

在C#桌面开发中,控件是构建用户界面的核心基础元素,如同应用程序的“积木”。其本质是拥有属性、方法和事件的对象模型,通过事件驱动机制响应用户交互,构成了WinForm快速开发的基石。这种成熟稳定的控件体系,使得开发者能够高效构建企业内部系统和工具软件界面。在实际应用中,控件的添加主要分为设计时拖拽与运行时动态创建两种方式,前者适合固定布局,后者则能根据数据或条件动态生成界面。掌握控件的公共属性(如Dock、Anchor)和布局容器(如TableLayoutPanel、FlowLayoutPanel),是实现

350

clistbox

mfc之ListBox介绍 ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中dwStyle将指明该窗口的风格

qq_27834195的博客 789

WPF控件图标化实战:从资源管理到性能优化的完整指南

在桌面应用开发中,用户界面(UI)的直观性是提升用户体验的关键。图标作为视觉符号,能有效降低认知负荷,是交互设计的基础元素。WPF(Windows Presentation Foundation)作为微软的图形子系统,通过其强大的样式、模板和数据绑定能力,为控件图标化提供了灵活的实现方案。从技术原理上看,图标资源主要分为位图、矢量图和字体图标三种类型,各有其适用场景和性能特点。在工程实践中,合理的资源管理策略(如使用ResourceDictionary进行模块化设计)和性能优化(如处理高DPI显示和内存管理

weixin_30905133的博客 337

Delphi 界面设计:Listbox控件的深度应用

本文还有配套的精品资源,点击获取 简介:Delphi中的界面设计对于桌面应用的用户体验至关重要,而Listbox控件则是其中不可或缺的部分。本文将深入讲解Listbox的基本使用、事件处理、样式和视觉效果调整、数据绑定、多列实现以及性能优化等关键技巧。通过实践学习Listbox控件的高级应用,可以帮助开发者提升Delphi界面设计的专业能力。 1. Delphi界面设...

weixin_42230607的博客 2317

MFC笔记1-动态创建CChecklistbox

一、动态创建CChecklistbox在VS中,CCheckListBox控件无法选择,能选的只有CListBox控件,这个控件的选项前面没有checkbox,如何才能用CCheckListBox了,方法如下:1. 新建对话框应用2.给对话框加一个ListBox控件3.修改ListBox的2个属性: Owner draw :Fixed, Has String:true4. 给ListBox加一个变...

weixin_36193572的博客 1559

Python连接高斯数据库踩坑实录:从SASL报错到SSL安全连接的完整指南

本文详细记录了Python连接高斯数据库时遇到的SASL authentication报错及其解决方法。通过剖析SASL认证机制,对比了修改数据库配置、使用官方驱动等方案的利弊,并重点提供了通过自动化脚本生成SSL证书,实现安全、免密连接的完整指南,帮助开发者彻底解决连接难题。

weixin_28340315的博客 438

嵌入式GUI开发实战:emWin核心控件ICONVIEW、IMAGE、KNOB、LISTBOX深度解析

在嵌入式系统开发中,图形用户界面(GUI)是连接用户与设备的关键桥梁,其核心在于高效、稳定的控件实现。控件作为GUI的基本交互单元,其设计遵循事件驱动与消息循环机制,通过窗口管理器协调输入、重绘与状态更新,确保响应的实时性与界面流畅性。这种机制不仅提升了用户体验,也为复杂交互逻辑提供了基础框架。在资源受限的嵌入式环境中,性能优化尤为重要,其中内存设备技术通过离屏缓冲区有效避免了绘制闪烁,并加速了重绘过程。本文聚焦emWin图形库,深入剖析ICONVIEW、IMAGE、KNOB和LISTBOX四大核心控件的设

weixin_33834628的博客 461

SE (3) -Transformers:三维旋转 - 平移等变注意力网络

E (3) 变换器,这是一种用于三维点云和图的自注意力模块变体,在连续三维旋转平移下具有等变性。注意力机制的计算量会随着点云规模的增大呈二次方增长,因此引入邻域的概念是很有必要的:每个点不再关注所有其他点,而只关注其最近的邻点。注意力机制此前已在图的领域中以内部注意力、自注意力、顶点注意力或图注意力等名称被引入 [17, 31, 32, 12, 26]。等变性意味着当输入数据发生旋转或平移时,模型的输出也会以相应的、可预测的方式进行变换,从而保证模型性能的稳定性和可预测性。

qq_49786473的博客 1479

PCB布局布线要求及多层电路板叠加原则

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考本文主要针对PCB布局布线中的要点进行了总结,并对多层电路板的叠加原则进行了解释。

Ka_wyb的博客 2932

emWin核心控件实战:ICONVIEW、IMAGE、KNOB、LISTBOX深度解析与应用

在嵌入式系统开发中,图形用户界面(GUI)是连接用户与设备的关键桥梁,其核心在于高效、灵活的控件系统。控件作为GUI的基本交互单元,其设计原理直接影响界面的响应速度与用户体验。emWin作为一款成熟的嵌入式GUI库,通过窗口对象、事件驱动和资源管理等机制,为开发者提供了强大的底层支持。理解控件的创建模式、皮肤绘制与内存管理,能够显著提升嵌入式产品的交互质感与运行效率。本文聚焦ICONVIEW、IMAGE、KNOB和LISTBOX这四个高频使用的核心控件,深入探讨其**内存设备**优化与**所有者绘制**定制

diaomeijiao3430的博客 359

SuperPoint与SuperGlue的C++ TensorRT工程化实战:从理论到部署的完整指南

本文详细介绍了如何将SuperPoint和SuperGlue算法通过C++和TensorRT进行工程化部署,从模型准备、格式转换到TensorRT引擎构建和C++推理实现。通过性能优化技巧和实际应用案例,展示了在边缘设备上实现实时特征匹配的完整流程,显著提升处理速度与效率。

weixin_42537831的博客 159

自绘ListBox

#pragma once // CMyListBox class CMyListBox : public CListBox { DECLARE_DYNAMIC(CMyListBox) public: CMyListBox(); virtual ~CMyListBox(); protected: DECLARE_MESSAGE_MAP() virtual BOOL PreCre

tixisong的专栏 518

节卡Jaka Zu APP编程避坑指南:从频繁通讯错误到稳定Socket交互的调试心得

本文详细解析了节卡Jaka Zu APP编程中常见的通讯错误问题,并提供了从基础排查到高级调试的完整解决方案。通过优化网络配置、固件匹配、心跳机制和数据交互规范,开发者可实现稳定的Socket通讯,有效提升工业机器人操控的可靠性。文章特别针对v1.6.7.3版本的典型问题给出了实用调试技巧。

weixin_42639633的博客 316

别再乱装了!Win10下NVIDIA显卡驱动、CUDA 11.0和cuDNN 8.0.5保姆级配置指南(含版本匹配避坑)

本文提供Win10下NVIDIA显卡驱动、CUDA 11.0和cuDNN 8.0.5的保姆级配置指南,详细解析版本匹配逻辑与安装步骤。从驱动选择到环境变量配置,再到框架测试,手把手教你避开常见坑点,确保深度学习环境一次配置成功。特别强调版本匹配的重要性,帮助开发者高效搭建GPU开发环境。

weixin_30600197的博客 307

WinForm 常用控件全套笔记(MessageBox/RadioButton/CheckBox/ListBox/ComboBox/NumericUpDown)

MessageBox:交互弹窗,带返回值判断操作:单选互斥,同容器唯一选中CheckBox:多选共存,无互斥限制ListBox:列表展示,支持批量多选遍历ComboBox:下拉单选,节省界面空间:专属数字输入,范围可控。

2401_84677775的博客 565

Skyworks SKY85331-11的Wi-Fi 6 (802.11ax)标准 2.4G 高功率WLAN前端模块解决方案

SKY85331-11是高度集成的2 GHz前端模块(FEM)包含2 GHz单刀双掷(SPDT)发送/接收(T / R)开关,2 GHz低噪声放大器(LNA)带旁路和一个2 GHz功率放大器(PA),用于大功率802.11ax应用程序和系统LNA和PA禁用功能可确保低漏电流 关闭模式。 包括一个集成的功率检测器以提供系统内的闭环功率控制。该设备提供Small (24-pin, 3 x 5 mm) (LGA)封装。 图1.引脚配置和封装如图所示 图2.信号引脚分配和功能引脚描述 图...

zhangbao19890622的博客 4503

WPF中集成SharpVectors实现SVG图标:多DPI适配与性能优化实战

矢量图形(SVG)作为一种基于XML的开放标准格式,其核心原理是通过数学方程描述图形,而非像素阵列,从而实现无限缩放不失真。这一特性在桌面应用开发中具有重要技术价值,尤其在多DPI屏幕适配和设计资源管理方面。在WPF(Windows Presentation Foundation)框架中,原生不支持直接渲染SVG文件,需要借助第三方库进行转换。SharpVectors作为.NET生态中成熟的SVG渲染库,能够高效地将SVG解析为WPF的Drawing对象,解决了高分辨率屏幕下位图图标模糊、锯齿等问题。其应用

weixin_30924239的博客 732

android osmdroid 加载常用离线地图格式(开源的在线地图)

osmdroid是(几乎)完整/免费更换为Android MapView(v1 API)类。它还包括一个模块化的瓷砖供应商系统支持众多的在线和离线瓷砖来源和覆盖支持内置覆盖绘制图标,跟踪位置和形状。如果想在你项目中使用osmdroid,绝对是灵活度最高,不用申请百度,高德等的key。还有一堆规则要遵循。osmdroid可以支持多图层叠加,绘制自已的图层。离线加载常用地图格式zip,sqlite,.

mmsx990的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

c#软件开发学习笔记--Winform窗体(控件)

构造函数 → Load事件 → 显示 → 用户交互 → FormClosing → 关闭。

Z599817841的博客 239

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: symbian 5th v9.4 安装图标制作
Co_Creating
博客等级 码龄19年 5粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值