Click here to Skip to main content
15,903,362 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: More multi processor woes Pin
Giles12-Jul-02 10:46
Giles12-Jul-02 10:46 
GeneralWinsock - discovering ip address Pin
JohnnyG12-Jul-02 4:32
JohnnyG12-Jul-02 4:32 
GeneralRe: Winsock - discovering ip address Pin
markkuk12-Jul-02 8:21
markkuk12-Jul-02 8:21 
GeneralRe: Winsock - discovering ip address Pin
JohnnyG13-Jul-02 15:41
JohnnyG13-Jul-02 15:41 
GeneralMarquee in visual C++ Pin
John Duffell12-Jul-02 3:58
John Duffell12-Jul-02 3:58 
GeneralRe: Marquee in visual C++ Pin
l a u r e n12-Jul-02 7:50
l a u r e n12-Jul-02 7:50 
GeneralRe: Marquee in visual C++ Pin
NormDroid12-Jul-02 23:29
professionalNormDroid12-Jul-02 23:29 
GeneralSorting items in a listctrl Pin
Niko Tanghe12-Jul-02 3:47
Niko Tanghe12-Jul-02 3:47 
For sorting a listcontrol on header-click, I use the following code:
But the condition if (iIndex1 == iIndex2) in CompareItems is always true.
The callback func is always called to compare an item with the same item.
And this happens for each item in the list....

Anyone already seen this behaviour? Any solve for this ?

Greetings,

Niko



//Sorting

static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
if(!lParamSort) return 0;

CListCtrlEx* pListCtrl = (CListCtrlEx*) lParamSort;
ASSERT_VALID(pListCtrl);

return pListCtrl->CompareItems( lParam1, lParam2);
}

void CListCtrlEx::SortOnCol(int iCol)
{
if(m_iSelColumn == iCol)
m_iSortDirection = -m_iSortDirection;
else
{
m_iSelColumn = iCol;
m_iSortDirection = 1;
}

//Set callback
SortItems( CompareFunc, (DWORD)this );

//Show first Item
int iItem = GetNextItem(-1, LVNI_SELECTED);
if (iItem > 0)
EnsureVisible(iItem,true);

}

int CListCtrlEx::CompareItems(int iIndex1, int iIndex2)
{
const int iMaxSortCol = 100;

char szBuf1[iMaxSortCol]; memset(szBuf1,0x00,sizeof(szBuf1));
char szBuf2[iMaxSortCol]; memset(szBuf2,0x00,sizeof(szBuf2));

if (iIndex1 == iIndex2)
return 0; //Shouldn't be possible

LV_FINDINFO FI;
FI.flags = LVFI_PARAM;

FI.lParam = iIndex1;
iIndex1 = FindItem( &FI);
if(iIndex1<0)
return 0;
GetItemText( iIndex1, m_iSelColumn, szBuf1, iMaxSortCol-1 );

FI.lParam = iIndex2;
iIndex2 = FindItem( &FI);
if(iIndex2<0)
return 0;
GetItemText( iIndex2, m_iSelColumn, szBuf2, iMaxSortCol-1 );

return m_iSortDirection*strcmp(szBuf1, szBuf2);
}



void CListCtrlEx::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
CWaitCursor Wait;

NM_LISTVIEW* pNM = (NM_LISTVIEW*)pNMHDR;
// TRACE("Clicked on column %d - Sorting: %s.\r\n", pNM->iSubItem, ((m_iSortDirection == m_iSortDirectionDsc)?"DSC":"ASC" ));

SortOnCol(pNM->iSubItem);

*pResult = 0;
}
GeneralRe: Sorting items in a listctrl Pin
KaЯl12-Jul-02 4:08
KaЯl12-Jul-02 4:08 
GeneralRe: Sorting items in a listctrl Pin
Mike Upton12-Jul-02 4:17
Mike Upton12-Jul-02 4:17 
GeneralRe: Sorting items in a listctrl Pin
Niko Tanghe12-Jul-02 4:54
Niko Tanghe12-Jul-02 4:54 
GeneralRe: Knowing Client Window Messages in MDI Window ... Pin
Mike Upton12-Jul-02 3:48
Mike Upton12-Jul-02 3:48 
GeneralSeems to work, but not all messages... Pin
Cursoe12-Jul-02 20:01
sussCursoe12-Jul-02 20:01 
GeneralRe: Knowing Client Window Messages in MDI Window ... Pin
Mike Upton12-Jul-02 3:52
Mike Upton12-Jul-02 3:52 
GeneralNice :))))) ... Thanks Pin
Cursoe12-Jul-02 17:14
sussCursoe12-Jul-02 17:14 
Generalto Subclass or not to Subclass ... Pin
12-Jul-02 20:49
suss12-Jul-02 20:49 
GeneralErrno and a linking problem (again...) Pin
Janine12-Jul-02 3:02
Janine12-Jul-02 3:02 
GeneralRe: Errno and a linking problem (again...) Pin
Joaquín M López Muñoz12-Jul-02 5:53
Joaquín M López Muñoz12-Jul-02 5:53 
GeneralRe: Errno and a linking problem (again...) Pin
Alexandru Savescu12-Jul-02 6:20
Alexandru Savescu12-Jul-02 6:20 
GeneralCToolbar - diable item Pin
jafrazee12-Jul-02 2:59
jafrazee12-Jul-02 2:59 
GeneralRe: CToolbar - diable item Pin
Mike Upton12-Jul-02 3:13
Mike Upton12-Jul-02 3:13 
GeneralRe: CToolbar - diable item Pin
Rage12-Jul-02 3:18
professionalRage12-Jul-02 3:18 
GeneralControls show in different ways in CDialog Pin
sanskypotov12-Jul-02 2:42
sanskypotov12-Jul-02 2:42 
GeneralRunning Visual C++ 6.0 and .Net Pin
Amos Kermisch12-Jul-02 2:33
sussAmos Kermisch12-Jul-02 2:33 
GeneralRe: Running Visual C++ 6.0 and .Net Pin
Alexandru Savescu12-Jul-02 6:18
Alexandru Savescu12-Jul-02 6:18 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.