???

解决方案 »

  1.   

    能够
    有下列几种方法:
    1、将字体设大
    2、用图片撑起来
    3、自己重载DrawItem  这也是最麻烦的建议使用第2种
      

  2.   

    关于如何设置图象:m_lstctlTable.Create(WS_TABSTOP|WS_GROUP|WS_VISIBLE|WS_CHILD|LVS_REPORT|LVS_SHOWSELALWAYS
                               ,rect,this,IDC_CASE_DGRID);
    m_lstctlTable.SetExtendedStyl(LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES|LVS_EX_GRIDLINES);CBitmapbmp;
    bmp.LoadBitmap(IDB_CASEITEM);
    m_ImgList.Create(16, 16, ILC_COLOR8|ILC_MASK, 2, 0);
    m_ImgList.Add(&bmp, RGB(0, 128, 128));
    m_lstctlTable.SetImageList(&m_ImgList,LVSIL_STATE);//...........m_lstctlTable.SetItemState(i, INDEXTOSTATEIMAGEMASK(n), LVIS_STATEIMAGEMASK);
    // i是列表项的索引,n是第几个位图
      

  3.   

    你把图片搞成透明的就可以了第3种啊 那就真的非常麻烦你要先设置控件的 OwnerDraw属性
    然后添加反射消息
    好象叫MeasureItem吧最后也是最麻烦的了  要重载DrawItem 自己用GDI  还要自己算好格子  一个一个画建议使用第2种方法
      

  4.   

    ON_WM_MEASUREITEM_REFLECT()响应如上消息; 并改变响应函数如下;afx_msg void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);void CXXXListCtrl::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
    {
         lpMeasureItemStruct->itemHeight = m_nItemHeight; (m_nItemHeight即你想要的高度)
    }void CXXXListCtrl::SetItemHeight()
    { CRect rcWin; GetWindowRect(&rcWin); WINDOWPOS wp; wp.hwnd = m_hWnd; wp.cx = rcWin.Width(); wp.cy = rcWin.Height(); wp.flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER; SendMessage(WM_WINDOWPOSCHANGED, 0, (LPARAM)&wp);
    }ListCtrl创建后, 如果收到WM_WINDOWPOSCHANGED消息, 它会调用计算行高的函数MeasureItem(...), 你在这个函数里面设定行高即可;
      

  5.   

    最后就是重载DrawItem我还没看到有人做过~~  如果你做了  请发给我拉
      

  6.   

    DrawItem是纯虚函数如果你要触发它的话 必须设置List的 OwnerDraw 属性为true
      

  7.   

    我试过了,还是不能触发。还有一个问题是如果我把OwnerDraw设为真的话,我就不能往里面插入项目了,会报错的。
      

  8.   

    ON_WM_MEASUREITEM_REFLECT()响应如上消息; 并改变响应函数如下;afx_msg void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);void CXXXListCtrl::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
    {
         lpMeasureItemStruct->itemHeight = m_nItemHeight; (m_nItemHeight即你想要的高度)
    }void CXXXListCtrl::SetItemHeight()
    { CRect rcWin; GetWindowRect(&rcWin); WINDOWPOS wp; wp.hwnd = m_hWnd; wp.cx = rcWin.Width(); wp.cy = rcWin.Height(); wp.flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER; SendMessage(WM_WINDOWPOSCHANGED, 0, (LPARAM)&wp);
    }ListCtrl创建后, 如果收到WM_WINDOWPOSCHANGED消息, 它会调用计算行高的函数MeasureItem(...), 你在这个函数里面设定行高即可;
    =================我也是这种思路,
    暂时没有成功,
    还在继续试验