我在list 控件中添加的图标总是居左,如图如何才能让他像这样居中呢;

解决方案 »

  1.   

    楼主是不是加了LVS_ALIGNLEFT
    这个style?去掉看看
      

  2.   

     没有加LVS_ALIGNLEFT风格 我的几个风格是这样设置的,
    m_list.SetExtendedStyle(m_list.GetExtendedStyle() |LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_SUBITEMIMAGES);   
    m_list.InsertColumn(7, _T("RDX"), LVCFMT_CENTER, 50, 3);  
    m_list.SetItem(0, 7, LVIF_IMAGE, NULL, 0, 0, 0, 0); 
      

  3.   

    CustomDraw 不会用啊 也不知道能不能搞
      

  4.   


    msdn里,图标对齐方式,只有左对齐和顶对齐
      

  5.   

    重载CListCtrl类,添加处理虚函数DrawItem()
      

  6.   

    Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMDRAW),就可以让Windows为你干活了,你就不用被逼去处理"重绘过程"中所有的脏活了。
      

  7.   


    msdn里,图标对齐方式,只有左对齐和顶对齐
     我特意为楼主这个问题去翻看了一下。
    typedef struct tagNMCUSTOMDRAWINFO {
      NMHDR     hdr;
      DWORD     dwDrawStage;
      HDC       hdc;
      RECT      rc;
      DWORD_PTR dwItemSpec;
      UINT      uItemState;
      LPARAM    lItemlParam;
    } NMCUSTOMDRAW, *LPNMCUSTOMDRAW;难道是用dc,让后每个子项的矩形区域中间 里drawicon?  或者贴图,贴到中央? 
      

  8.   

    多谢楼上各位,我先用Custom draw试试吧。