Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Не могу сконструировать CListCtrl (MFC)  (Прочитано 7508 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tuborg
Команда клуба

ee
Offline Offline

« : 02-07-2008 17:04 » 

Похоже я сломался...

1. Создал в редакторе ресурсов диалог... связал его с классом CDbgEventLog
2. Выложил на него CListCtrl... создал мышкой для контрола переменнуюю внутри класса DbgReport
3. Теперь с основного диалога проги делаю следующее:
Код:
CDbgEventLog m_DbgEventLog;
m_DbgEventLog.CreateDebugEventsWindow();
m_DbgEventLog.DoModal();

Метод CreateDebugEventsWindow:

Код:
ErrType CDbgEventLog::CreateDebugEventsWindow()
{
DbgReport.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
DbgReport.InsertColumn(1,_T("Время"));
DbgReport.InsertColumn(2,_T("Источник"));
DbgReport.InsertColumn(3,_T("Сообщение"));
return ErrType::err_result_ok;
}

Теперь дальше нифига не понимаю...
ставлю брекпоинт на DbgReport.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
смотрю хэндл контрола через дебагер. Он равен нулю... фигня какая-то....
Что я упустил? Всегда ж автоматом нормально связывалась.... и здесь вроде связано:

Код:
void CDbgEventLog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_DBG_REPORT, DbgReport);
}

Что мне делать? чувствую себя двоешником и вообще лузером  А черт его знает...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 02-07-2008 18:33 » 

Tuborg, функцию CreateDebugEventsWindow() тебе надо вызвать не до DoModal(). А, например, в OnInitDialog твоего диалога. А нужные данные передать через конструктор диалога

И мембер для контрола не надо тоже добавлять, доставай в диалоге в нужные моменты через
Код:
CListCtrl* pL = (CListCtrl*)GetDlgItem(IDC);

pL->...

и вообще, для встроенных классов никогда мемберы не добавляй - однажды запаришься няньчиться с ними Улыбаюсь
« Последнее редактирование: 02-07-2008 18:35 от Алексей1153++ » Записан

Tuborg
Команда клуба

ee
Offline Offline

« Ответ #2 : 03-07-2008 06:13 » new

ок, спасибо =)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines