關於listctrl的用法

2021-04-25 20:05:57 字數 1681 閱讀 2539

插入列:(行和列都是從0開始)

m_list.insertcolumn(0, "執行時間", lvcfmt_left , 80 ,-1);

m_list.insertcolumn(1, "描述", lvcfmt_left , 80 , -1);

m_list.insertcolumn(2, "程式路徑", lvcfmt_left , 150 , -1);

m_list.insertcolumn(3, "執行狀態", lvcfmt_left , 100 , -1);

插入行:

int n = m_list.getitemcount();

m_list.insertitem(n, str_time ,0);

m_list.setitemtext(n, 1, dlg.m_edit);

m_list.setitemtext(n, 2, dlg.m_filepath);

m_list.setitemtext(n, 3, "未執行");

獲取第i行,第3列的值:

m_list.getitemtext(i, 3);

刪除時要注意一點:

m_listctrl.deleteitem(0)

m_listctrl.deleteitem(1)

因為你刪除第0行以後,下面的行會往上移,那麼原來的第1行就變成了第0行,那麼你再 m_listctrl.deleteitem(1),那麼刪除的是原來的第2行

所以,只有從下往上刪,才是安全的

可以使用下面**:

position  sselpos = null;

while(sselpos = m_listctrl.getfirstselecteditemposition())

}獲得選中項:

方法一:

position   pos   =   plist->getfirstselecteditemposition(); 

if   (pos   ==   null) 

trace0("no   items   were   selected!/n"); 

else 

}  方法二:

int i=m_oldins.getcursel();  //得到在第乙個listctrl列表中選擇項的索引

cstring str;

if(i==lb_err)  //表示沒有選擇

方法三:

int i=m_list.getselectionmark();

刪除clistctrl中選定的項:

position pos;

int nindex;

for(; pos= getfirstselecteditemposition();)

用程式選中某一行,使之選中 

m_listctrl.setitemstate(nindex,lvis_selected|lvis_focused,lvis_selected|lvis_focused);

不選中,取消選中之

m_listctrl.setitemstate(nindex,0,lvis_selected|lvis_focused);

設定背景顏色:

m_list.setbkcolor( rgb( 100, 180, 250 ) );

設定字型顏色:

m_list.settextbkcolor( rgb( 100, 180, 250 ) );

ListCtrl用法總結

listctrl在工作中,常常用到,也常常看到大家發帖問怎麼用這個控制項,故總結了一下自己的使用經驗,以供參考使用。先註明一下,這裡,我們用m listctrl來表示乙個clistctrl的類物件,然後這裡我們的listctrl都是report形式,至於其他的如什麼大圖示,小圖示的暫時不講,畢竟re...

關於ListCtrl控制項的一些用法

本人從今天開始將陸續把自己在vc 中學到的點點滴滴記錄下來。最近正好在跟著導師做乙個軟體專案,要用到listctrl控制項。下面結合自己的程式設計經驗 其實我還是個菜鳥 介紹幾個listctrl控制項常用的方法。我選用的是報表形式 1 為listctrl 設定 線 m mylist.setexten...

報表風格的listctrl

報表風格的listctrl 說明 m list是clistctrl型別變數 long lstyle lstyle getwindowlong m list.m hwnd,gwl style 獲取當前視窗的風格 lstyle lvs typemask 清除顯示方式位 lstyle lstyle lvs...