listctrl控件在利用大图标情况下,默认文字是在图标下面,我需要将文字显示在图标的右边,怎么实现。如果重绘listctrl控件的话,有没有类似按钮ModifyStyle(0,BS_OWNERDRAW)这样的语句更改listctrl的属性,如何实现上面的效果。还有就是如何控制每行的缩略图个数。其实就是如何实现Windows文件夹平铺这样的效果?

解决方案 »

  1.   

    CListCtrl::DrawItem这个函数足够你使用了,
    void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );
    typedef struct tagDRAWITEMSTRUCT {
      UINT      CtlType; 
      UINT      CtlID; 
      UINT      itemID; 
      UINT      itemAction; 
      UINT      itemState; 
      HWND      hwndItem; 
      HDC       hDC; 
      RECT      rcItem; 
      ULONG_PTR itemData; 
    } DRAWITEMSTRUCT; 
    Members
    就是绘制单个ITEM的,你的CListCtrl派生类直接重写它实现好了!
      

  2.   

    http://www.codeproject.com/KB/list/lvcustomdraw.aspx
      

  3.   

    重载DrawItem就能自绘得非常好!
      

  4.   

    1楼和3楼的能不能提供点实质性的东西?我知道要重载DrawItem,改listctrl控件的属性,关键是怎么重载,一直没有找到相应的方法