2009-11-26 54 views
1

我目前能夠設置列表視圖樣式威盛ListView_SetExtendedListViewStyle方法,但是這使得所有列都具有相同的樣式。我的目標是僅修改一列(基本上具有LVS_EX_UNDERLINEHOT | LVS_EX_UNDERLINECOLD | LVS_EX_TWOCLICKACTIVATE樣式)。設置列樣式? (非託管c + +)

有沒有辦法修改只有一列而不是整個表的樣式?

編輯:甚至自定義繪製單元格的方式?

+0

請千萬不要用短語「非託管C++。語言偏執者使用這個短語來暗示C++低於他們的「託管」環境。 – 2009-11-27 12:15:29

回答

1

如果您使用WTL框架,那麼有一個非常有用的CCustomDraw類,您可以使用它輕鬆攔截NM_CUSTOMDRAW消息並繪製您自己的listview內容。

在使用WTL here進行自定義繪製時,有一個很好的CodeProject文章。

2

在Win32 API下有一個關於使用ListView控件的教程,CodeProject

尋找部件---子項目顏色---「ListView顏色」。 那裏,你會看到下面的代碼,其中你應該把你相應ListView_SetExtendedListViewStyle()調用的情況下,語句中:

case CDDS_SUBITEM | CDDS_ITEMPREPAINT: 
     { 
      switch(lplvcd->iSubItem) 
      { 
       case 0: // Your first column