> </P>: L# V1 Z1 O( |7 A7 ^3 m) N
> </P>" p: W7 T! S9 r7 Y2 Z1 }) v1 q
>天津大学电子与信息工程学院 </P>
>宋天宁 </P># }) b2 U0 i& b) c9 p, W/ R2 U
>---- 列表框控件在应用程序中的使用率很高,在Windows中经常见到, </P>
>它有四种常见的式样,分别具有显示大图标,小目标,含有图标的多列列表,含 </P>
>有列标头的列表。我们也经常见到一些扩展功能,例如我们在资源管理器中的文 </P>
>件列表框中,在选用详细资料察看时,用鼠标单击列标头,如大小,则所列文件 </P>6 U1 m9 @( q4 ~) h7 a, A: v
>按大小排序;单机日期,则按文件日期进行排序.这一功能增强了应用程序的可用 </P>
>性,使操作更直观、方便。笔者在以Borland C++Builder 3.0(以下简称BCB)作 </P>8 L" j2 p! B- u0 @# I+ ^6 T
>为开发平台实现这一功能时发现,仅通过设定列表框控件的属性值的方法,只能 </P>$ f, Y2 N7 p3 O6 ]0 q, E' D: P
>根据项目的首列加以排序,不能根据子项目(SubItems)排序。因此,我们需要编 </P>
>写自己的代码以完成这一功能。 </P>
> </P>
>---- 以下描述如何在BCB开发平台上为列表框添加列标头点击排序功能,当我们 </P>% e* G7 M' v5 r4 v5 S
>点击的次数为奇数时,所列内容以降序排列;当我们点击的次数为偶数时,所列 </P>
>内容以升序排列。 </P>6 g: Y5 J# E: Q
> </P>/ V- p! w% Z' ~, Y0 p: G1 q- O
>---- 首先将一个列表框控件安放在Form上,并将其名称设为ListView1。然后在 </P>
>其中添加若干项目作为试验对象。方法为:用鼠标右键单击控件,在弹出的对话 </P>
>框中选择Columns Editor用来添加列和子列;再选Items Editor用来添加项目( </P>) p1 Q) s8 k8 L
>包含子列和主列上的内容)。 </P>. g5 c) c- O, f8 D# T& K, g
> </P> K7 N. r( x ]2 D/ b% T
>---- 为了显示出子项目内容,需要在Object Inspector中修改ListView属性值 </P>
>,将ViewStyle设置为vsReport。另外,还必须将SortType设置为None,以使我 </P>
>们的排序程序起作用。这样,程序的外观已经符合需要,下面应该增加排序功能 </P>
>的代码了。为此需要添加类的方法到源代码中。添加位置为: </P>
> </P>7 N; e% m; t2 ?2 X/ Z+ P" d# S7 g
> </P>
>void __fastcall TForm1:
istView1ColumnClick </P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |