您的位置:首页 > 其它

vc 中改变ListCtrl每一行(每一个Item)的高度

2010-04-24 20:50 309 查看
由于ListCtrl类本身并没有改变Item高度的方法或属性,因此,改变Item高度需要放在ListCtrl实例化的时候进行。

你是不是想说,我最不喜欢自己重绘控件了!

是的,我也不喜欢,现在我们另辟蹊径,用另外的思路解决。

方法很简单,在ListCtrl示例所属的Dialog添加WM_MEASUREITEM的消息响应函数(或者PostMessage,然后使用WindowProc处理)。MSDN中对于WM_MEASUREITEM消息的描述如下:

The WM_MEASUREITEM message is sent to the owner window of a combo box, list box, list view control, or menu item when the control or menu is created.

A window receives this message through its WindowProc function.

简单来书,WM_MEASUREITEM是框架中一些控件创建条目时框架收到的消息。

具体到ListCtrl,可以在相应该函数时使用

afx_msg void OnMeasureItem(
   int nIDCtl,
LPMEASUREITEMSTRUCT lpMeasureItemStruct
);

进行处理,其中 nIDCtl是控件ID,lpMeasureItemStruct 可以自定义Item高度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: