sort click colomn title
-
i try sort virtual list-view with click on column title but when i click nothing happens this dialog procedure:
BOOL CALLBACK DlgProc(HWND hwnd,UINT msg, WPARAM wParam,LPARAM lParam)
{
static HWND hWndList = 0;switch(msg)
{
case WM_INITDIALOG:
{
hWndList= CreateWindowEx(0, WC_LISTVIEW, NULL,
WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_OWNERDATA|LVS_REPORT,
20, 20, 620, 300, hwnd, NULL, hInstance,NULL);//заголовок LV\_COLUMN lvc; ZeroMemory(&lvc,sizeof(lvc)); lvc.mask=LVCF\_FMT|LVCF\_SUBITEM|LVCF\_TEXT|LVCF\_WIDTH; lvc.fmt=LVCFMT\_LEFT;//выравнивание lvc.cx=150; lvc.pszText=(LPSTR)"имя файла"; ListView\_InsertColumn(hWndList,0,&lvc); ListView\_SetItemCount(hWndList,directory.size()); return TRUE; }
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hwnd,0);
return true;
}case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case LVN_GETDISPINFO:
{
NMLVDISPINFO* plvdi = (NMLVDISPINFO*)lParam;switch (plvdi->item.iSubItem) { case 0: { plvdi->item.pszText = (LPSTR)directory\[plvdi->item.iItem\].\_name.c\_str();//"имя файла" break; } default: break; } } case LVN\_COLUMNCLICK: { LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; //NM\_LISTVIEW \*pnmv= (NM\_LISTVIEW\*)lParam; switch (pnmv->iSubItem) { case 0: { //"имя файла" sort(directory.begin(), directory.end(), boost::bind(less(), boost::bind(&data::\_name, \_1), boost::bind(&data::\_name, \_2)));//возростание break; } default: {break;} } ListView\_RedrawItems(hwnd, 0, directory.size() - 1); UpdateWindow(hwnd); break; } } }
default:
return FALSE;
}
}i don't understand why??
-
i try sort virtual list-view with click on column title but when i click nothing happens this dialog procedure:
BOOL CALLBACK DlgProc(HWND hwnd,UINT msg, WPARAM wParam,LPARAM lParam)
{
static HWND hWndList = 0;switch(msg)
{
case WM_INITDIALOG:
{
hWndList= CreateWindowEx(0, WC_LISTVIEW, NULL,
WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_OWNERDATA|LVS_REPORT,
20, 20, 620, 300, hwnd, NULL, hInstance,NULL);//заголовок LV\_COLUMN lvc; ZeroMemory(&lvc,sizeof(lvc)); lvc.mask=LVCF\_FMT|LVCF\_SUBITEM|LVCF\_TEXT|LVCF\_WIDTH; lvc.fmt=LVCFMT\_LEFT;//выравнивание lvc.cx=150; lvc.pszText=(LPSTR)"имя файла"; ListView\_InsertColumn(hWndList,0,&lvc); ListView\_SetItemCount(hWndList,directory.size()); return TRUE; }
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hwnd,0);
return true;
}case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case LVN_GETDISPINFO:
{
NMLVDISPINFO* plvdi = (NMLVDISPINFO*)lParam;switch (plvdi->item.iSubItem) { case 0: { plvdi->item.pszText = (LPSTR)directory\[plvdi->item.iItem\].\_name.c\_str();//"имя файла" break; } default: break; } } case LVN\_COLUMNCLICK: { LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; //NM\_LISTVIEW \*pnmv= (NM\_LISTVIEW\*)lParam; switch (pnmv->iSubItem) { case 0: { //"имя файла" sort(directory.begin(), directory.end(), boost::bind(less(), boost::bind(&data::\_name, \_1), boost::bind(&data::\_name, \_2)));//возростание break; } default: {break;} } ListView\_RedrawItems(hwnd, 0, directory.size() - 1); UpdateWindow(hwnd); break; } } }
default:
return FALSE;
}
}i don't understand why??
Did you debug it? Do you reach the lines of code you expected? If not, how far do you get?
-
Did you debug it? Do you reach the lines of code you expected? If not, how far do you get?
constantly are sent LVN_COLUMNCLICK, and the list is constantly being updated
-
i try sort virtual list-view with click on column title but when i click nothing happens this dialog procedure:
BOOL CALLBACK DlgProc(HWND hwnd,UINT msg, WPARAM wParam,LPARAM lParam)
{
static HWND hWndList = 0;switch(msg)
{
case WM_INITDIALOG:
{
hWndList= CreateWindowEx(0, WC_LISTVIEW, NULL,
WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_OWNERDATA|LVS_REPORT,
20, 20, 620, 300, hwnd, NULL, hInstance,NULL);//заголовок LV\_COLUMN lvc; ZeroMemory(&lvc,sizeof(lvc)); lvc.mask=LVCF\_FMT|LVCF\_SUBITEM|LVCF\_TEXT|LVCF\_WIDTH; lvc.fmt=LVCFMT\_LEFT;//выравнивание lvc.cx=150; lvc.pszText=(LPSTR)"имя файла"; ListView\_InsertColumn(hWndList,0,&lvc); ListView\_SetItemCount(hWndList,directory.size()); return TRUE; }
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hwnd,0);
return true;
}case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case LVN_GETDISPINFO:
{
NMLVDISPINFO* plvdi = (NMLVDISPINFO*)lParam;switch (plvdi->item.iSubItem) { case 0: { plvdi->item.pszText = (LPSTR)directory\[plvdi->item.iItem\].\_name.c\_str();//"имя файла" break; } default: break; } } case LVN\_COLUMNCLICK: { LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; //NM\_LISTVIEW \*pnmv= (NM\_LISTVIEW\*)lParam; switch (pnmv->iSubItem) { case 0: { //"имя файла" sort(directory.begin(), directory.end(), boost::bind(less(), boost::bind(&data::\_name, \_1), boost::bind(&data::\_name, \_2)));//возростание break; } default: {break;} } ListView\_RedrawItems(hwnd, 0, directory.size() - 1); UpdateWindow(hwnd); break; } } }
default:
return FALSE;
}
}i don't understand why??