| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Не запускается проект CListView |
| Автор: torero 17.6.2006, 14:34 |
| Я совершенно путаюсь с понятиями: указатель, дескриптор и хэндл. Создал проект на основе класса CListView. Использую нечёткий пример из книги-Мешков, Тихомиров "Visual C++ и MFC" часть II. Сразу в конструкторе "вида" устанавливаю стиль окна: CListCtrl &m_List=GetListCtrl(); ASSERT(::IsWindow(m_List.m_hWnd)); SetWindowLong(m_List.m_hWnd,GWL_STYLE,LVS_REPORT); Ну и конечно же ASSERT говорит, что указатель (или скорее handl) m_List.m_hWnd равен нулю. Но где же взять этот указатель? Если же в конструкторе ничего не писать, а в OnInitialUpdate: CRect rect; GetClientRect(rect); CListCtrl &m_List=GetListCtrl(); m_List.InsertColumn(0,_T("NAME"),LVCFMT_LEFT,rect.Width()/3); то, хотя код завершения InsertColumn нормальный, но окно остаётся пустое. Нет заголовка NAME. Может у кого примерчик есть небольшой со стилем REPORT. |
| Автор: Bukmop 17.6.2006, 15:21 |
| В конструкторе, окна ещё нет, поэтому и хендл нулевой. Стиль тоже устанавливай в OnInitialUpdate: m_List.ModifyStyle(LVS_TYPEMASK,LVS_REPORT); |
| Автор: DeadSoul 18.6.2006, 17:29 | ||
И там же делай InsertColumn |
| Автор: torero 19.6.2006, 14:13 |
| Спасибо за советы. Этот этап получился. Двигаюсь дальше. |