我继承了clistbox,重写了measureitem和drawitem,在measureitem里通过drawtext函数获取文本的高度作为item的高(调试发现没错),在drawitem里通过drawtext输出项文本(调试证明项宽高都无错)。问题是控件窗口高度为140象素,而此时item的高度是160象素,item的矩形区域被自动剪切成控件窗口矩形区域同样大小,导致显示不完整。控件item可变大小,且多行的。请问如何解决?在此先谢过了!

解决方案 »

  1.   

    当item的高度大于控件的高度,加个垂直滚动条不就完事了吗?
    在listbox的properties属性style页里,勾选Vertical scroll。
    要是觉得系统自带的滚动条不好看,也可以自己模拟一个漂亮的
      

  2.   

    有垂直滚动条的,我是在单文档的view创建的。
      

  3.   

    MSDN对DRAWITEMSTRUCT的rcItem项的解释有这样一句话∶The system automatically clips anything that the owner window draws in the device contex for combo boxes,list boxes,and buttons
      

  4.   

    style 加上 LBS_NOINTEGRALHEIGHT