?? subject_49527.htm
字號:
<p>
序號:49527 發表者:yanqingguang 發表日期:2003-08-11 16:39:26
<br>主題:SortItems使用
<br>內容:我在網上看到有關SortItems的源代碼,我下載了一個覺得很不錯,但是當我在數據庫中使用時就出現了問題。<BR>void CShowLogDlg::OnColumnclickListShowlog(NMHDR* pNMHDR, LRESULT* pResult) <BR>{<BR> NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;<BR> if( pNMListView->iSubItem == m_showlog.m_nSortedCol )<BR> m_showlog.m_fAsc = !m_showlog.m_fAsc;<BR> else<BR> {<BR> m_showlog.m_fAsc = TRUE;<BR> <BR> m_showlog.m_nSortedCol = pNMListView->iSubItem;<BR> }<BR> m_showlog.SortItems( ListCompare,(DWORD)&m_showlog);<BR> *pResult = 0;<BR>}<BR>static int CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)<BR>{<BR> CSortList* pV=(CSortList*)lParamSort;<BR><BR> CString szComp1 = pV->GetItemText(lParam1,pV->m_nSortedCol);<BR> CString szComp2 = pV->GetItemText(lParam2,pV->m_nSortedCol);<BR> int iCompRes;<BR> iCompRes=strcmp(szComp1, szComp2);<BR> return iCompRes;<BR>}<BR>struct DEMO_DATA<BR>{<BR> char szName[20];<BR> int iAge;<BR>}strAllData[6]={{"王某",30},{"張某",40},{"武某",32},{"陳某",20},{"李某",36},{"徐某",22}};<BR>說明:當我在listctrl中通過對話框初始化OnInitDialog()函數,我點擊list的Colunm時就可以按照某一列Column的字符的大小進行排列,但是當我的listctrl的結果是從數據庫中得到的話就無法實現大小順序的排列.下面的土就是實現的效果,上面的圖是從數據庫中得到的,就無法實現排序的效果。不知道問什么,希望達到大家的幫助,謝謝!
<br><a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p>
<hr size=1>
<blockquote><p>
回復者:yanqingguang 回復日期:2003-08-11 16:51:05
<br>內容:圖片
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回復者:夜未眠 回復日期:2003-08-11 23:40:36
<br>內容:看了以后,覺得代碼好怪異,和MSDN定義的用法有出入,lParamSort不是那么用的呀。不過也不至于出錯,但你無法實現對多列的排序,以及按升序和降序排列。你有沒有調用SetItemData,會不會是lParam1和lParam2用的不對。
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -