`
izuoyan
  • 浏览: 9223983 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设置ListView控件的Check Boxes状态

阅读更多

设置ListView控件的Check Boxes状态<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

aawolf按:最近在项目里用到了ListView的这个属性,尽管这篇文章在MSDN里的评价并不是很高,但对于需要这种属性的工程还是比较好的指导材料。所以拿来和大家一同分享,希望大家继续关注我的专栏:http://www.csdn.net/develop/author/netauthor/aawolf/

What You Need

· Microsoft eMbedded Visual Tools 3.0

· Good working knowledge of Microsoft eMbedded Visual C++

Background

在设计一个用户界面时,你经常需要对一系列的选择给出一个可见的提示。这可以用不同的图标表示,或者使用一个Check Box控件。Pocket PC ListView控件提供内建的Check Box功能(见图)。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 179.25pt; HEIGHT: 239.25pt" o:ole="" alt="" type="#_x0000_t75"><img o:title="" src="/Develop/ArticleImages/20/20000/CSDN_Dev_Image_2003-7-241902490.wmz"><font size="3"></font></shape>
Figure: Check boxes allow intuitive selection of ListView items.

Pocket PC SDK中你会发现ListViewListView_GetCheckState宏允许检查一个List ItemCheck box状态。不幸的是,相应的ListView_SetCheckState宏没有被包含到Microsoft Visual C++的头文件中去,比如Pocket PC 2000 SDKPocket PC 2002 SDK当前的Beta版本。这个宏被包含到了平台SDKMSDN的文档中。它将被添加到Pocket PC 2002 SDK的最终版本中。

如果你看一下ListView_GetCheckState commctrl.h中的定义,你将看到Check Box状态被保存在12bitItem data中。

#define ListView_GetCheckState(hwndLV, i) \

 ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)i, LVIS_STATEIMAGEMASK))) >> 12) -1)

Adding the Missing Pieces

通过ListView_GetCheckState的逻辑,设置或者清空这个字将直接影响Check Box的状态,设置或者取消Check标志。因此,ListView_SetCheckState命令可以被跟踪实现。拷贝并粘贴这个宏到你的代码中,就可以使它工作。(aawolf:Pocket PC 2002以上的SDK中已经包含了这个宏,直接使用就可以了)

#ifndef ListView_SetCheckState 

#define ListView_SetCheckState(h, i, f) \

 ListView_SetItemState(h, i, INDEXTOSTATEIMAGEMASK((f) + 1), LVIS_STATEIMAGEMASK) 

#endif

注意INDEXTOSTATEIMAGEMASK将值移动12位。

#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)

Using the Checkboxes

为了使用ListViewCheck Box,你需要设置LVS_EX_CHECKBOXES风格:

ListView_SetExtendedListViewStyle(hWndList, LVS_EX_CHECKBOXES);

该风格在List的第一列中留出足够的空间,并且在文字的前面画出Check Box。当你想设置Check Box时,你需要调用ListView_SetCheckState控制句柄、Item索引和期望的状态。

ListView_SetCheckState(hWndList, dwIndex, (bState ? 1 : 0));

同样,你可以通过调用ListView_GetCheckState来得到Check Box的状态:

ListView_GetCheckState(hWndList, dwIndex);

Conclusion

该功能的完整执行在最终的Pocket PC SDK中是有效的,这可以让你的程序通过很简单的方式得到视觉效果上的优势。
分享到:
评论

相关推荐

    vba 日期控件和listview控件注册

    这段代码展示了如何在表单初始化时设置日期控件的值,并配置ListView控件的基本样式。 通过以上步骤,你应该能够解决WPS VBA环境下日期控件和ListView控件的兼容性问题。记住,每次修改注册表后都要重启VBA编辑器...

    VBA实战系列(ListView控件)

    为了使ListView控件能够正确展示数据,首先需要设置其表头。这一步骤通过编写VBA代码来完成: ```vba Private Sub UserForm_Initialize() ListView1.ColumnHeaders.Add , , "日期" , 64 , 0 ListView1.Column...

    listview控件可有4种不同的视图显示方法 (1).docx

    9. Icons 和 SmallIcons 属性:该属性设置 ListView 控件视图相关联的 ImageList 控件中的图片。 三、控件常用方法 ListView 控件有一些常用方法,可以根据需要进行调用: 1. Add 方法:该方法添加 listItem 对象...

    禁止用户调整Listview控件列宽

    在Windows应用程序开发中,ListView控件是一个常用的组件,它用于显示多列数据,通常用于文件管理器或数据库应用等场景。然而,在某些情况下,我们可能希望禁止用户通过鼠标拖动来调整ListView控件中列的宽度。这...

    Listview控件用法,listview控件,.net控件,.net listview控件用法

    在.NET框架中,ListView控件是一个非常常用的组件,它用于显示数据集合,通常在Windows Forms或WPF应用程序中。ListView控件提供了多种视图模式,包括详细信息、小图标、大图标、列表和报告,使得用户可以以各种方式...

    ListView控件显示数据库数据的C#源代码_ListView_c#listview控件_数据开发_

    4. **设置ListView**:在代码中创建ListView控件,添加列(Columns)以对应数据库中的字段。列的文本应与数据库表中的列名相对应。 5. **数据绑定**:将DataTable的数据绑定到ListView控件。这通常通过DataSource...

    C#中的ListView控件实例

    描述中的`ListViewItems`属性,用于访问和设置ListView控件中的所有条目。你可以通过这个属性来操作每个条目的各种属性,如文字、颜色、图像等。 `SubItems()`方法是在详细信息视图(Details)中使用的,它允许你在...

    C#listView控件的使用

    以上就是C#中ListView控件的基础用法,包括设置视图模式、添加删除项、多列显示、复选框以及图标显示等功能。实际开发中,你还可以根据需求自定义更多的样式和行为,例如排序、分组等,以满足各种复杂的应用场景。...

    C#.net 控件ListView控件简单实例

    此外,ListView控件支持排序功能,通过设置`SortMode`属性实现。例如,按照第一列进行升序排序: ```csharp this.listView1.Sorting = SortOrder.Ascending; this.listView1.ListViewItemSorter = new ...

    安卓手机 ListView控件的三种使用方式

    在Android开发中,ListView是应用界面中非常常见的一种控件,它用于展示大量数据的列表形式,具有良好的滚动性能和可扩展性。本教程将详细讲解如何在安卓手机上使用ListView控件,从基础到进阶,通过四个案例来帮助...

    listView控件综合应用

    首先,ListView控件的基础使用包括在设计界面中添加控件、设置其属性以及响应事件。在VB6.0的工具箱中找到ListView控件,将其拖放到窗体上。常见的属性有:`View`用于设置视图模式,`ColumnHeaders`用于定义列头,`...

    QmlListView控件位置定位的几个方法

    本文就是介绍ListView控件个性化位置设置,对于一般的控件设置它的位置是非常简单的事,设置x,y轴坐标就可以了。但是客户也不是那么容易就被解决好的。本文介绍几种方法来设置ListView控件的位置,总有一种适合你。

    c#读取listview控件内容

    在C#编程中,ListView控件是一个非常常用的数据展示组件,它允许开发者以列表形式展示数据,支持多种视图模式,如图标、列表、详细信息等。本篇将深入探讨如何在C#中读取ListView控件的内容,以及如何通过Spy++工具...

    Listview控件常用方法.docx

    返回或设置 ListView 控件中 ListItem 对象的外观。有四个选项,lvwIcon 是图标视图, lvwSmallIcon 是小图标视图, lvwList 是列表视图, lvwReport 是报表视图。 5. MultiSelect:设置是否可以选择多个 ListItem ...

    VB 读取Excel表格数据并在ListView控件中显示

    在VB(Visual Basic)编程中,常常需要处理与Excel数据的交互,比如读取Excel表格中的数据并将其显示在ListView控件中。ListView控件是一个非常实用的组件,可以用来展示列表形式的数据,包括多种视图模式,如图标、...

    使用TreeView和listView控件查看本机磁盘文件夹及文件(WinForm)

    2. ListView 控件的基本属性设置:包括设置 ListView 控件的视图样式、列标题、项排列方式等。 ListView 控件的视图样式可以设置为详细信息、小图标、大图标、列表、 tile 等多种方式。列标题可以根据需要设置,项...

    vb 中listview控件的使用方法

    在VB(Visual Basic)编程环境中,ListView控件是一种常见的用户界面元素,用于显示列表或表格数据,具有多种视图模式,如图标、列表、详细信息等。本篇将深入探讨ListView控件的基本用法和常见功能,以帮助开发者更...

    VBA_使用Listview控件.rar

    本资源“VBA_使用Listview控件.rar”显然关注的是如何在VBA中有效地利用ListView控件。ListView控件是一种常见的用户界面元素,通常用于显示一组项目的列表,每个项目可以有多个列来展示不同信息。以下是关于VBA和...

    C#-winform-listview控件美化

    在C# WinForm开发中,ListView控件是一个常用的组件,用于展示列表数据,例如文件管理器中的文件列表。然而,ListView控件默认的样式相对朴素,为了提升用户体验和界面美观度,开发者通常需要对其进行一定程度的...

    C++listview控件(结合了树和选择框)

    在C++编程中,ListView控件是一个非常常用的用户界面元素,尤其在开发Windows应用程序时。ListView控件可以显示多列数据,并且具有多种视图模式,包括报告视图、小图标视图、大图标视图和详细信息视图。在这个特殊的...

Global site tag (gtag.js) - Google Analytics