首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MFC CListCtrl 擴展風格設定:累加 vs 覆蓋差異

     編輯:程式設計綜合問答

CListCtrl::SetExtendedStyle 兩種寫法行為不同:

寫法一:累加風格 (推薦)

list.SetExtendedStyle(list.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
  • 取得目前風格,按位或上新風格,**保留原有風格** (如 LVS_EX_GRIDLINES, LVS_EX_CHECKBOXES 等)。

寫法二:覆蓋風格

list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
  • **完全取代** 原有風格,僅保留指定風格,其他風格被清除。

何時用哪種?

  • 初始化時、需開啟多項風格 → 寫法一。
  • 需重置為單一風格、關閉所有其他擴展風格 → 寫法二。

常見擴展風格旗標

旗標效果
LVS_EX_FULLROWSELECT整列選取
LVS_EX_GRIDLINES顯示網格線
LVS_EX_CHECKBOXES顯示核取方塊
LVS_EX_DOUBLEBUFFER雙緩衝減少閃爍
LVS_EX_INFOTIP懸停顯示工具提示

最佳實務

DWORD dwStyle = list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_DOUBLEBUFFER;
list.SetExtendedStyle(dwStyle);

一次性讀取、修改、寫回,避免多次呼叫與風格衝突。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved