要实现一个windows资源管理器右侧的缩略图控件。要求可以自己指定缩略图的大小。我想知道的是如何指定每个Item的大小,文档上是说在CDDS_ITEMPREPAINT消息中指定。但我试了。似乎并不成功。。LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;
NMCUSTOMDRAW& nmcd = lplvcd->nmcd;

switch (nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;
case CDDS_ITEMPREPAINT:
                nmcd.rc.left =  //指定Item大小。
       nmcd.rc.right =
                nmcd.rc.top = 
                nmcd.rc.bottom = 不知大家有没有做过类似的东西。。

解决方案 »

  1.   

    一般是设置字体和颜色
    You can then specify font and color for each subitem separately or return CDRF_DODEFAULT for default processing.
      

  2.   

    横秋:谢谢。可以在这个消息中改变字体,颜色,这个我知道。我是要改变Item的大小,使随后的ListView_GetItemRect调用中,返回自定义的大小,比如宽,高均为300.如果仅仅按自定义大小来绘图,而ListView_GetItemRect返回的仍是默认的Icon的大小,则是否选中,Lable等等的判定不是都要出错了
      

  3.   

    如果有时间的话,自己绘制一个list控件
      

  4.   

    是啊。过去都是自已绘的。但这次是要用ListView的。因为还要用到报表模式。
      

  5.   

    好了。已经解决了。其实非常简单。只要指定ImageList中的图大小就可以了。把简单问题搞复杂了。。散分。