procedure TmyListView.WMNotify(var Message: TWMNotify);
var
  FHeaderHandle: THandle;
begin
  inherited;
  
    FHeaderHandle := SendMessage(Handle, LVM_GETHEADER, 0, 0);  if ValidHeaderHandle and (Message.NMHdr^.hwndFrom = hHead) then
  begin
    with Message.NMHdr^ do
    begin
    if (hwndfrom = FHeaderHandle) then
      case code of        HDN_BEGINTRACK,HDN_BEGINTRACKW:
        FHeaderTracking := True;        HDN_ENDTRACK,HDN_ENDTRACKW:
        begin
        FHeaderTracking := False;
        SetHeaderOwnerDraw(FHeaderOwnerDraw);
        end;
        
        HDN_ITEMCHANGED:
        SetHeaderOwnerDraw(FHeaderOwnerDraw);        HDN_DIVIDERDBLCLICK:
        begin
        if not FHeaderTracking then
            SetHeaderOwnerDraw(FHeaderOwnerDraw);
          with PHDNotify(Pointer(Message.NMHdr))^ do
          begin
            Column[Item].Width :=ListView_GetColumnWidth(Handle, Item)+1;
            if IsCustomDrawn(dtControl, cdPrePaint) then Invalidate;
          end;
        end;        NM_CUSTOMDRAW:
          begin
            with PNMCustomDraw(Message.NMHdr)^ do
            begin
              case dwDrawStage of
                CDDS_PREPAINT: Message.Result := CDRF_NOTIFYITEMDRAW;
                CDDS_ITEMPREPAINT:
                  begin
                    SetTextColor(hdc, clwhite);
                    SetBkColor(hdc, clskyblue);
                    Message.Result := CDRF_NEWFONT;
                  end;                end;
            end;
          end;
        end;
    end;
    end;
end;以前写的,有点乱,你可以参考一下

解决方案 »

  1.   

    能够改变颜色,但是还有些小问题(当column 为空时,双击header,颜色又变了回去,这个可以解决,但还是有毛病):),还有另外方法 :)
      

  2.   

    感谢wzwcw(Delphi)的帮助,不过,问题还是没有解决。不知道你能不能花点时间帮忙研究和整理一下。如果分不够的话,可以再加的。也请其它高手们关注。
      

  3.   

    ListView.OnCustomDrawItem事件
    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if (Item.Index mod 2) = 0 then
        Sender.Canvas.Brush.Color := 背景色; //淡一点
    end;
      

  4.   

    To weizhi(行者):
        这是以前编的控件,本来就没有完工,不过可以改标题颜色,不太好做,
    也可以用另外麻烦点方法解决,你告诉我信箱,我给你发个控件,是我参考别人改的。