mfc的ClistCtrl控制項列的排序

2022-05-02 10:30:12 字數 731 閱讀 6092

在網上看了許多排序的方法,都沒看懂,初學者的悲劇,然後就自己弄了個,請大家指正.

clistctrl控制項的行帶著乙個結構體,不過那結構體不好懂,看得眼花繚亂.好多也弄不明白,就自己寫了個結構體,把一行的資料全寫入結構體中,

交換兩結構體的資料就簡單多了.

typedef struct

mytongxilu;

[.cpp]

寫兩個函式,把結構體寫入指定行中,乙個從指定行中的資料寫入結構體中

//寫入

//讀取資料

_tcscpy_s(toxilu.fenlei, m_list.getitemtext(selindex, 4));

_tcscpy_s(toxilu.tel, m_list.getitemtext(selindex, 5));

return toxilu;

}接下來就是資料交換了,有的還要轉換數字,我就懶得轉換了,全是以字串來比較,

rowint:為要比較的總行數,原來沒弄這引數,每次都要全部比較,所以後來弄個限制行數,比較了的行就不再比較,依次遞減.

colint:為要比較的列的索引

bol:為true為公升序,為flase為降序,

}else}}

}//滑鼠點選列表頭事件

//迴圈比較,最大的放最後,依次遞減

for (int j=m_list.getitemcount();j>=1;j--)

}大功告成,以後再去學習它自帶的結構體.

MFC控制項 CListCtrl3

clistctrl使用詳解 2009年04月07日 星期二 10 56 p.m.如果設定了lvs ex checkboxes屬性,則可以用 bool getcheck int nitem const 來得到某一行是否checked。可以先用下面的語句來刪除以前的東西 for int k 2 k 0 ...

MFC之列表控制項CListCtrl

position ps m list.getfirstselecteditemposition int nsel m list.getnextselecteditem ps 選中的哪行的索引 based 0 或 if m list.getselectedcount 1 return int nsel...

MFC中的列表控制項CListCtrl

在使用clistctrl控制項report顯示風格時,需要設定列標題資訊,否則不能向控制項中新增資料資訊,編輯列標題需要 使用insertcolumn方法 m listctrl.insertcolumn 0,姓名 lvcfmt left,150,0 m listctrl.insertcolumn 1...