我用SetTextBkColor把list背景设置成红色。用EnableWidnow把list设置成disabled。可以item文字的灰色背景怎么修改呀,现在太难看了。

解决方案 »

  1.   

    MFC Grid control 2.27 - CodeProject
      

  2.   

    DrawItem等进行重绘,文字背景也需要重画
      

  3.   

    http://blog.csdn.net/visualeleven/article/details/5948057
      

  4.   

    感谢大家回复,我其实知道如何自绘,就是不知道如何改那个灰色的背景色。因为我不想自己DrawText,而是保留CListCtrl自己的文字输出。SetBkMode是针对DC的,我没有操作DC。
      

  5.   

    我的也没问题:
    void CMyExploreView::OnInitialUpdate()
    {
    CListView::OnInitialUpdate();
    CListCtrl    &RightList=GetListCtrl();
    RightList.SetTextBkColor(RGB(255,0,0));
      

  6.   

    RightList.EnableWindow(FALSE);
    惹的祸
      

  7.   

    不让ListCtrl工作,在ListCtrl,在SetFocus中把Focus还给父窗口。
      

  8.   

    得把List设置成Disable才会出现。
      

  9.   

    就是说先不要EnableWindow(FALSE);
    看看对不对,
    ‘还是没有我想要的答案’?你试了吗?
      

  10.   


    试无数次了。我的控件必须是disable的,为什么不要EnableWindow(FALSE)?
      

  11.   

    "因为我不想自己DrawText,而是保留CListCtrl自己的文字输出。"
    你想要SetTextBkColor(RGB(255,0,0));有效必须不要EnableWindow(FALSE)
    否则SetTextBkColor(RGB(255,0,0));会无效。你就需要响应:
    OnCustDrawList(NMHDR *pNMHDR,LRESULT *pResult)
      

  12.   

    http://topic.csdn.net/u/20110805/17/acea9af5-16c0-4a07-9839-f742adfbd718.html