CListCtrl用法 收藏

2021-03-31 23:26:03 字數 1429 閱讀 8352

1。先來介紹report型別的clistctrl:

首先使用下面的語句設定clistctrl的style:

dword setextendedstyle( dword dwnewstyle );

其中lvs_ex_checkboxes 表示新增checkbox

lvs_ex_fullrowselect 表示選擇整行

lvs_ex_gridlines 表示新增**線

如果設定了lvs_ex_checkboxes屬性,則可以用

bool getcheck( int nitem ) const;

來得到某一行是否checked。

可以先用下面的語句來刪除以前的東西:

for(int k=2;k>=0;k--) //注意要從後往前刪,否則出錯

m_listctrl.deletecolumn(k);

m_listctrl.deleteallitems();

用下面的語句新建列:

m_listctrl.insertcolumn(0,_t("檔名"),lvcfmt_image|lvcfmt_left);

m_listctrl.insertcolumn(1,_t("儀器類別"));

m_listctrl.insertcolumn(2,_t("專案類別"));

其中lvcfmt_image表示可以在第一列加入圖示。如果不要圖示可以刪去。

然後設定列寬:

for(j=0;j<3;j++)

m_listctrl.setcolumnwidth(j ,100);

以下為列表加入圖示,如果不需要圖示,可以跳過這一步。注意只在第一次加入,如果多次加入會出錯!

先在標頭檔案中加入宣告:

cimagelist m_imagelist;

這是必要的,如果在cpp的某個函式中加入由於生命期結束,cimagelist自動釋放,則效果是列表中看不到圖示,只看到乙個白方塊。

下面生成cimagelist,並將其繫結到clistctrl中,這是cimagelist中還沒有圖示,只是乙個容器:

static int flag=2;

if(flag==2)

flag=(flag+1)%2;

如果clistctrl已經用過,曾經加過圖示進去,這時就要刪除上次放進m_imagelist中的image

for(int kk=0;kk

2。如果是icon型別的clistctrl,則要做一點點改動:

把繫結圖示集的**由

setimagelist(&m_imagelist,lvsil_**all);

改為setimagelist(&m_imagelist,lvsil_normal);

插入行時只用

insertitem(i,mainset.m_filename,i);

不用setitemtext(i,1,type);

之類的**。

CListCtrl的基本用法

一 風格 clistctrl有四種風格 lvs icon 大圖示 lvs smallicon 小圖示 lvs list 列表 lvs report 詳細資料,最常用的就是這種風格了 風格設定在屬性頁可以直接設定,也可以用函式setview來設定。二 設定擴充套件風格 常見的擴充套件風格有 lvs e...

CListCtrl列表控制項的基本用法

列表控制項是基本經常用到的控制項,這裡總結一下,方便以後使用。需要設定的屬性 view report 一般為報表 edit labels true 控制項可以重新命名 always show selection true 設定選中焦點 變數繫結控制項clistctrl m list 列表控制項 vo...

CListCtrl用法簡介及使用技巧

設定屬性 首先用資源編輯器拖放乙個listctrl控制項到對話方塊中。設定屬性。always show selection true 即便失去焦點依然高亮選擇 singleselection true 只允許選中一行 view report 報表方式,較常用 初始化 在對話方塊的oninitiald...