CListView

6 отговора 139 прегледа
#1

CListView

Здравейте.
Имам малко проблемче.
Направих си един SDI проект във VC. Лявото пано е CListView , дясното е CFormView.
Става дума за CListView-то. То използва стандартния CListCtrl,а на мен той не ми върши работа и затова си намерих сорса на един
подходящ CListCtrl --> XListCtrl. Контрола е много хубав и проекта ми е почти пред завършване, ОБАЧЕ
не знам как да заместя стандартния CListCtrl в CListView-то с този XListCtrl.
Някакви идеи?

Отговор
в отговор на rosen #2

Re: CListView

XListCtrl покрива ли 100% функционалността на CListCtrl?

Я вышел им наперерез!
Отговор
в отговор на Resurrector #3

Re: CListView

da
class XListCtrl: public CListCtrl{
//...
}

Отговор
в отговор на rosen #4

Re: CListView

Нещо такова би трябвало да свърши работа:

XListCtrl* pXListCtrl = new XListCtrl;
pXListCtrl->Create(...);
DestroyWindow(GetListCtrl()->m_hWnd);
GetListCtrl()->SubclassWindow(pXListCtrl->m_hWnd);

Надявам се да схващаш за какво става дума.

Я вышел им наперерез!
Отговор
в отговор на rosen #5

Re: CListView

1. Включваш в проекта всички файлове, които трябва. Там от където си го взел пише.
2. Във View класа слагаш променлива CXListCtrl m_List;
3. Прихващаш WM_CREATE

if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;

m_List.SubclassWindow (GetSafeHwnd () );
m_List.SubclassHeaderControl (); //


return 0;

Отговор
в отговор на rosen #6

Re: CListView

Не става и с 2-та примера.
// 1 primer
OnCreate(){
//...
if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;
pXListCtrl = new CXListCtrl();
RECT r;
//GetListCtrl().GetClientRect(&r);
pXListCtrl->Create(LVS_REPORT, r, this, 10022);
::DestroyWindow(GetListCtrl().m_hWnd);
GetListCtrl().SubclassWindow(pXListCtrl->m_hWnd); // run time error
//...
}

// 2 primer
OnCreate(){
//..
// NOT
if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;

m_List.SubclassWindow (GetSafeHwnd () );
m_List.SubclassHeaderControl (); // run time error
//..
}

Отговор
в отговор на rosen #7

Re: CListView

Прав си.

Сега не ми се пише повече, виж този пример, точно каквото ти трябва. Ако не се оправиш питай пак.
[линк]

Отговор