Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2008, 01:01   #1
Icor
 
Регистрация: 13.04.2008
Сообщений: 5
По умолчанию Где храняться данные в List View

Помогите разобраться в сортировке в столбце при нажатии на загаловок колонки. Да и вообще не могу никак понять, где храняться данные которые я послал в List View.

Вот как я заздаю окно и добавляю поля:
Код:
	
hwndListResult = CreateWindowEx(0L, WC_LISTVIEW, _T(""),
		WS_VISIBLE | WS_CHILD | WS_BORDER | LVS_REPORT,
		5, 100, 300, 300, hwnd, (HMENU)ID_HWNDLISTBOX, 
		((LPCREATESTRUCT) lParam) -> hInstance, NULL);

memset(&column, 0, sizeof(column));
column.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVS_REPORT |LVCF_SUBITEM;
column.fmt = LVCFMT_LEFT;
column.iSubItem = 0;
column.cx = 150;
column.pszText = _T("Фамилия");
ListView_InsertColumn(hwndListResult, 0, &column);

column.iSubItem = 1;
column.pszText = _T("Имя");
ListView_InsertColumn(hwndListResult, 1, &column);

дальше добавляю элементы:
Код:
void AddListView(struct Data *contact, int i, HWND hwndListResult)
{
	LV_ITEM lvi;
	memset(&lvi, 0, sizeof(lvi));
	lvi.mask = LVIF_TEXT;
	lvi.pszText = contact->surname_text;
	lvi.cchTextMax = sizeof(contact->surname_text);
	lvi.iItem = i;
	lvi.iSubItem = 0;
	SendMessage(hwndListResult, LVM_INSERTITEM, 0, (LPARAM)&lvi);

	lvi.iSubItem = 1;
	lvi.pszText = contact->name_text;
	SendMessage(hwndListResult, LVM_SETITEM, 0, (LPARAM)&lvi);

}
обработка WM_NOTIFY:

Код:
case WM_NOTIFY:
{
	NMHDR *pnmh =(LPNMHDR *) lParam;
	LV_DISPINFO *pLvdi = (LV_DISPINFO*) pnmh;
	NM_LISTVIEW *pNm = (NM_LISTVIEW *)pnmh;
	switch(pLvdi->hdr.code)
	{
	         case LVN_COLUMNCLICK:
	        {
	          ListView_SortItems(pNm->hdr.hwndFrom, ListViewSort,   (LPARAM)(pNm->iSubItem));
		return 0L;
		break;
	        }
	}
	break;
}
ну и сама сортировка:

Код:
int CALLBACK ListViewSort(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
	struct Data *pAppInfo1 = (struct Data *)lParam1;
	struct Data *pAppInfo2 = (struct Data *)lParam2;
	int iResult;

	if(pAppInfo1 && pAppInfo2)
	{
		switch(lParamSort)
		{
		case 0: 
			iResult = wcscmp(pAppInfo1->surname_text, pAppInfo2->surname_text);
			break;

		case 1:  

			iResult = wcscmp(pAppInfo1->surname_text, pAppInfo2->surname_text);
			break;

		default:
			iResult = 0;
			break;
		}
	}
	return(iResult);
}
struct Data - это структура где содержиться два TCHAR-х поля.
подскажите пожалуйсто что не так. Срочно нужно.

Кстати параметры IParam1 и IParam2 в функции равны 0; Хотя я в другой проге смотрел там они имеют не нулевое значение.

Последний раз редактировалось Icor; 16.04.2008 в 01:32.
Icor вне форума Ответить с цитированием
Старый 16.04.2008, 09:45   #2
Icor
 
Регистрация: 13.04.2008
Сообщений: 5
По умолчанию

При добавлении данных я в LV_ITEM lvi в поле mask добавил LVIF_PARAM
сортировка стала работать, вот только данные изображаються только в первом столбце в чем дело.
Icor вне форума Ответить с цитированием
Старый 16.04.2008, 11:42   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

В чём именно вопрос состоит?
B_N вне форума Ответить с цитированием
Старый 16.04.2008, 19:15   #4
Icor
 
Регистрация: 13.04.2008
Сообщений: 5
По умолчанию

В том что когда я дабавляю параметр LVIF_PARAM(когда добавляю данные в столбцы) информация начинает изображаться только в первом столбце.
Icor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Index List ofbounds (16) Johnson Общие вопросы Delphi 4 17.07.2008 19:54
List yurik1 Общие вопросы C/C++ 1 06.05.2008 16:34
List View ПРОБЛЕМЫ Altera Компоненты Delphi 1 13.04.2008 03:19
E-Mail форма+List Box Nemesisking PHP 8 05.04.2008 12:59
User list RKS Работа с сетью в Delphi 8 10.09.2007 13:42