listbox 自绘制 注意事项

ModifyStyle()调用不起作用 现象:在使用WTL做CListBox子类化时,使用 ModifyStyle(0, LBS_OWNERDRAWFIXED)不起作用; 原因:并不是所有的风格都可以动态利用ModifyStyle/ModifyStyleEx()函数增加和去除,有些风格比如 LBS_HASSTRINGS | LBS_OWNERDRAWFIXED| LBS_OWNERDRAWVARIABLE 就只能在创建窗口的时候指定( 阅读详情

1.  首先要修改 listbox的style   设置 ownerdraw 不为 no 同时如果需要支持addstring 和getstring  需要 增加 LBS_Hasstrings 属性。默认情况下非 自绘制的listbox(系统默认的那种) 默认是有lbs_hasstrings 属性。

2. 在ownerdraw 不为no属性下,对wm_drawitem 和wm_measure 消息进行相应。

在对 wm_drawitem相应函数OnDrawItem()中 ,通过参数获取 HDC 。 CDC dc; dc.attach(m_hDC);注意在函数结尾添加 dc.detach();  如果不手动detach ,dc是不会释放的;参考:http://www.codeguru.com/forum/archive/index.php/t-290327.html

3. 在listbox 的wm_paint消息使用默认的处理方法,在默认情况下,系统会知道什么时候向你发送wm_drawitem消息。如果改写该消息的相应函数,则所有的绘制处理都由自己处理,包括滚动条。

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

相关推荐

嵌入式GUI开发:emWin LISTBOX控件API详解与实战配置指南

在嵌入式系统开发中,图形用户界面(GUI)是实现人机交互的核心组件,其设计直接关系到用户体验与系统效率。控件作为GUI的基本构成单元,负责处理用户输入与视觉反馈,其性能与灵活性是评估GUI库优劣的关键指标。emWin作为一款广泛应用于工业控制、汽车电子等领域的成熟嵌入式GUI库,其控件API设计体现了高度的工程化思维,通过分离关注点的设计哲学,将数据模型、渲染逻辑与事件处理解耦,从而赋予开发者强大的定制能力与性能优化空间。LISTBOX控件作为实现列表选择功能的核心交互单元,在设备菜单、文件浏览、参数配置等

weixin_30388677的博客 371

带颜色的listbox控件

  Private Sub filllistboxwithcolors()        Me.ListBox1.DrawMode = DrawMode.OwnerDrawFixed        Me.ListBox1.ItemHeight = 24        避免闪烁        Me.ListBox1.BeginUpdate()        ListBox1.Items.Clear

闵峰的专栏 1509

emWin控件API深度解析:IMAGE与LISTBOX实战优化指南

在嵌入式GUI开发中,图形用户界面(GUI)是产品交互的核心,而高效的控件API调用直接影响界面流畅度与系统稳定性。其原理在于通过合理的资源管理与渲染策略,在有限的RAM、Flash和CPU资源下实现高性能图形显示。技术价值体现在能够显著提升嵌入式设备的用户体验与专业感,尤其在工业HMI、医疗仪器等对实时性要求高的场景中。应用场景广泛覆盖从简单的图像显示到复杂的交互列表,开发者常面临内存溢出、渲染卡顿等挑战。本文聚焦emWin的IMAGE和LISTBOX控件,深入剖析内存管理策略与性能优化技巧,例如通过IM

weixin_30613727的博客 315

Win32字控件-列表框

[样式] LBS_DISABLENOSCROLL 当列表框不包含足够的项目移动时,列表框中显示禁用垂直滚动条。如果没有此样式当列表框不包含足够的项目时,滚动条隐藏。 LBS_EXTENDEDSEL 使用shift键和鼠标或特定组合键,用户可以选择多个项。 LBS_HASSTRINGS 指定所有者描述包含字符串的项列表框。列表框保留内存和字符串的指针,以便应用程序可以使用 GetText

lz_net_cs的专栏 2529

win32实现ListBox自绘

win32实现ListBox自绘1、ListBox控件自绘要点2、ListBox控件自绘关键代码3、重要说明 1、ListBox控件自绘要点 在CreateWindowEx创建窗口时,需要对参数dwStyle设置上LBS_OWNERDRAWFIXED | LBS_HASSTRINGS这两个属性。并且需要在创建listbox窗口的父窗口中处理WM_DRAWITEM和WM_MEASUREITEM两个消息进行列表框的重绘。 LBS_OWNERDRAWFIXED:指定列表框的父窗口负责绘制其内容,并且列表框中的项

Coding14的博客 1197

WinForm之ListBox 控件

摘要:ListBox是WinForm中用于展示和选择列表项的控件,支持单选和多选模式(SelectionMode属性)。相比ComboBox,它能直观展示所有选项,适用于文件列表、权限设置等场景。核心特性包括:通过Items集合管理列表项、多种选择模式(单选/多选)、多列显示(MultiColumn属性)以及动态更新能力。典型应用包括数据绑定、双击事件处理等。开发时需注意:批量操作使用AddRange()提升性能,多选模式需配合SelectedItems集合获取选中项,大数据量建议启用虚拟模式。

weixin_66547608的博客 2111

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

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

diaomeijiao3430的博客 357

关于更改ListBox的ItemsPanel样式

关于更改ListBox的ItemsPanel样式 原文:关于更改ListBox的ItemsPanel样式 首先定义一个ListBoxItem的样式,用来显示相应的图片信息 <Style TargetType="{x:Type ListBoxItem}" >   <Setter Property="...

weixin_30802171的博客 467

WPF listBox 漂亮的listBOX资源文件介绍

WPF listBox 漂亮的listBOX资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供一款精美绝伦的WPF listBox控件资源,适用于希望在WPF应用程序中打造出视觉效果更加引人注目的用户界面。此listBox控件以其优雅的设计和流畅的用户体验,将帮助开发者的应用程序界面更具吸引力。 特性 美观大方:控件设计风格精美,视觉效果出色,易于融...

gitblog_06719的博客 552

emWin LISTBOX与IMAGE控件深度解析:从基础API到高级应用实战

在嵌入式GUI开发中,控件是构建用户界面的核心模块,其设计原理直接影响系统性能与用户体验。控件本质上是对特定交互逻辑和显示功能的封装,通过标准化的API接口为开发者提供高效构建复杂界面的能力。从技术价值看,优秀的控件库能显著降低开发门槛,提升代码复用率,并在资源受限环境下实现内存与性能的优化。在嵌入式设备如工业HMI、智能家居面板等场景中,列表展示与图像显示是最常见的需求。本文聚焦emWin图形库中的两个关键控件:LISTBOX(列表框)与IMAGE(图像控件)。通过剖析其API设计哲学,深入讲解如何利用自

weixin_34265814的博客 321

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

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

weixin_34116110的博客 586

VB LISTBOX

1)List Box控件常用的方法 参数:AddItem向列表框添加新项目,其格式为:ListBox控件名.AddItem<项目>[,<索引值>]其中:&lt;项目&gt;为字符串表达式,表示添加到列表框中的新项目。&lt;索引值&gt;为数值表达式,指定在列表框中插入新项目的位置。若为0,则插入到第一个项目位置;若缺省且Sorted属性为False,则插入到最后一个项目位置;若缺省且Sor...

miaozk2006的专栏 1692

获取ListBox Template中的元素

1.适用场景:获得listBox的Item的ControlTemplate中的元素控件 c#后台文件        ///         /// 通过Tree 寻找控件         ///         ///         ///

周学文的专栏 942

ListBox Drag & Drop 功能实现指南

ListBox控件的Drag & Drop功能使得用户可以通过拖拽的方式对列表项进行排序或转移至其他位置。这一功能不仅方便了用户进行操作,还大大增强了应用程序的交互性。在本章节中,我们将介绍ListBox控件如何启用和实现基本的拖放操作。在.NET框架中,事件驱动编程是一种常见的编程模型,用于处理用户交互、系统通知或程序状态的变化。事件处理机制能够响应特定的程序行为或系统条件,允许程序更加模块化,易于维护和扩展。

weixin_35829279的博客 1063

【Tkinter】用Text做一个伪ListBox

文章目录前言实现引入模块主要功能部分Text控件布局让光标所在行高亮注意事项如何获取当前行效果演示最终源码 前言 在Tkinter中,有一种叫Listbox的神奇控件,它可以显示元素,与滚动条联动。但是!有时我们想让用户在A窗口选中项目然后在B窗口填文本,当用户在Entry按下CTRL+A时,很快啊,那Listbox选中项立刻就没了啊,还要我们再选一遍,就很不舒服,于是,这个伪Listbox诞生了。 实现 引入模块 既然说到了Text,那么首先一定就要 from tkinter import Text 对

weixin_48178135的博客 541

C# ListBox:列表框控件

列表框 (ListBox) 将所提供的内容以列表的形式显示出来, 并可以选择其中的一项或多项内容,从形式上比使用复选框更好一些。 列表框中常用属性: 列表框还提供了一些方法来操作列表框中的选项,由于列表框中的选项是一个集合形式的, 列表项的操作都是用 Items 属性进行的。 例如Items.Add方法用于向列表框中添加项,...

zs1342084776的博客 5196

ListBox控件的使用

在C#中有很多控件可以使用,但一些控件需要掌握其独特的用法。 1.       ListBox控件的常用属性 a)       SelectionMode属性:提供单项选择或多重选择。 b)       MultiColumn属性:是否在列中水平显示,该值为true时将在每行显示多个列表项,而不是项的垂直(单列)列表。 c)       Items属性:列表项中的项的集合。 d)    

猿猿网页设计 1851
上一篇: ClistCtrl 自绘 可设置 每一行的 rect 及 这一行如何绘制
下一篇: 关于 控件 的鼠标效应消息 WM_MOUSELEAVE 和WM_MOUSEHOVER
gamer243
博客等级 码龄19年 9粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值