📄 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 + -