ListView不能接收到WM_MEASUREITEM消息吗? 即使把draw方式改成customdraw也收不到这个消息.(100分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
是不是说, listview的itemHeight一旦设定就是固定的, 所以windows不给它法这个消息. 无法给每行item设定不同的height.
 
我想listview的item大小是由系统决定的,customdraw当然可以画出想要的效果,
当焦点变动时,想达到效果还是要重绘item,过程不太复杂,但有些问题,画mask时
容易引起循环重绘。我做过一个largeitem加背景的,我想你要是report那种吧,想
达到什么效果呢?delphi4/demos/customdraw中的例子也不能改变间距,但可以改
font,但重绘时晃动得厉害,beginner...
 
我要的效果就像Borland/Delphi4/Demos/Ownerlst里面的例子那样.不过不是listbox,而是listview.

我知道可以用customdraw之类的事件, 但我是想, 既然可以给每行不同的字体,那么就应该按照相应字体的高度重新设置每行的高度,这就需要响应WM_MEASUREITEM消息,让我自己计算行高度.
可问题是listview根本不接受WM_MEASUREITEM消息(我是继承的一个新控件),我猜想, 因为ListView不是纯的VCL,要调用M$的comctrl32.dll库,可能该消息被DLL屏蔽掉了. 不信你可以在网上找找关于扩展的listview的控件,都不能自由调整行高度,肯定是因为这个原因.
 
那个例子里行高也是一定的,只不过是draw出了边界,我想你还是变通一下,用个
stringgrid之类的东西做吧,效果应该相似的。
 
long time.
愿意给钱结束吗?长久了。要不就想点法子引导一下大家的思路。
 
多人接受答案了。
 
后退
顶部