void Student::OnBnClickedButton1()
{
// TODO: 在此添加控制元件通知處理程式代碼
int p, q;
int i = 0;
for (int i = 1; i < M_List.GetItemCount(); i++)
{
int k = 1;
for (int x = 0; x < M_List.GetItemCount() - i; x++)
{
p = _ttoi(M_List.GetItemText(x,5));//把CString轉化為int型
q = _ttoi(M_List.GetItemText((x + 1), 5));
if (p < q)
{
CString item;
item = M_List.GetItemText(x, 5);
M_List.SetItemText(x, 5, M_List.GetItemText((x + 1), 5));
M_List.SetItemText((x + 1), 5, item);
k = 0;
}
if (k) break;
}
}
}
這個要怎么對一整行進行排序,我在if陳述句交換幾行5列之后再交換幾行的其他列就不行,求求大神救救大學生
uj5u.com熱心網友回復:
int CALLBACK ListSortCompare(LPARAM lp1,LPARAM lp2,LPARAM Check){ // lp1,lp2 are the 'ID' original oders. the iItem will changes
CListCheckDlg* pDlg=(CListCheckDlg* )AfxGetMainWnd();
CString str1 = pDlg->m_List.GetItemText((int)lp1,1);
CString str2 = pDlg->m_List.GetItemText((int)lp2,1);
afxDump << str1 << "\n";
afxDump << str2 << "\n\n";
//
if((strcmp(ListStr[(int)lp1],(char *)Check)==0) &&
((strcmp(ListStr[(int)lp2],(char *)Check)==0))) return 0;
else if((strcmp(ListStr[(int)lp1],(char *)Check)==0)) return -1;
else if((strcmp(ListStr[(int)lp2],(char *)Check)==0)) return 1;
else return 0;
}
void CListCheckDlg::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
//
int sb=pNMListView->iSubItem;
// fast enough
if(sb==1)
{
m_List.SortItems(ListSortCompare,(LPARAM)"張三");
}
}
uj5u.com熱心網友回復:
自己找了一個早上終于找出來了uj5u.com熱心網友回復:
是如何弄的,能跟我說一下嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/25267.html
標籤:圖形處理/算法
