设为首页 加入收藏

TOP

子视窗控制项(四十六)
2010-12-30 21:12:42 来源: 作者: 【 】 浏览:32684
Tags:视窗 控制
。通常,当给有卷动列的清单方块增加新项目时,清单方块本身会自己重画。您可以通过将样式LBS_NOREDRAW包含进去来防止这种现象。但是您也许不想使用这种样式,这时可以使用WM_SETREDRAW讯息来暂时防止清单方块控制项重新画过,我将在稍後讨论WM_SETREDRAW讯息。

内定状态下,清单方块视窗讯息处理程式只显示列表项目,它的周围没有任何边界。您可以使用视窗样式识别字WS_BORDER来加上边界。另外,您可以使用视窗样式识别字WS_VSCROLL来增加垂直卷动列,以便用滑鼠来卷动列表项目。

Windows表头档案定义了一个清单方块样式,叫做LBS_STANDARD,它包含了最常用的样式,其定义如下:

您也可以采用WS_SIZEBOX和WS_CAPTION识别字,但是这两个识别字允许您重新定义清单方块的大小,也允许您在清单方块父视窗的显示区域中移动清单方块。

清单方块的宽度应该能够容纳最长字串的宽度加上卷动列的宽度。您可以使用:

来获得垂直卷动列的宽度。您用一个字元的高度乘以想要在视埠中显示的项目数来计算出清单方块的高度。

将字串放入清单方块
 

建立清单方块之後,下一步是将字串放入其中,您可以通过呼叫SendMessage为清单方块视窗讯息处理程式发送讯息来做到这一点。字串通常通过以0开始计数的索引数来引用,其中0对应於最顶上的项目。在下面的例子中,hwndList是子视窗清单方块控制项的代号,而iIndex是索引值。在使用SendMessage传递字串的情况下,lParam参数是指向以null字元结尾字串的指标。

在大多数例子中,当视窗讯息处理程式储存的清单方块内容超过了可用记忆体空间时,SendMessage将传回LB_ERRSPACE(定义为-2)。如果是因为其他原因而出错,那么SendMessage将传回LB_ERR(-1)。如果操作成功,那么SendMessage将传回LB_OKAY(0)。您可以通过测试SendMessage的非零值来判断这两种错误。

如果您采用LBS_SORT样式(或者如果您在清单方块中按照想要呈现的顺序排列字串),那么填入清单方块最简单的方法是借助LB_ADDS

首页 上一页 43 44 45 46 47 48 49 下一页 尾页 46/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇功能表及其他资源 下一篇计时器

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: