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

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

ru
Offline Offline
Пол: Мужской

« : 14-04-2010 12:22 » 

Привет Всем.

Приложение на базе SDI документ/вид не поддерживается. Visual Studio 6

создаю окно в CMainFrame::OnCreate так:
Код:
if (!m_TubeTabl.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
CRect(0, 0, 0, 0), this, IDW_CTUBE_TABL, NULL))
{
TRACE0("Failed to create view window\n");
return -1;
}
объявлена так:
Код:
CTubeTabl m_TubeTabl; базовый класс CWnd

т.к. создается окно с нулевыми размерами контролл создаю в OnSize проверяю чтоб размер был не нуль, один раз так:
Код:
WORD styl=WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_EX_FULLROWSELECT|LVS_REPORT|LVS_EX_GRIDLINES;
m_tubeTabl.Create(styl,rec,this,IDC_TUBE_TBL);

объявлени как CListCtrl таблица не появляется, можно ли как ее проявить не определяя свой класс
Спасибо
« Последнее редактирование: 14-04-2010 16:31 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #1 : 14-04-2010 16:33 » 

SAndrus, выражай мысли более чётко и структурировано, непонятно, что ты пытаешься сделать и что не получается ))
Записан

SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 14-04-2010 16:37 » 

поместить на окно элемент CListCtrl, все вроде создается, столбцы добавляются, а в окне не отображается, как его на белый свет вытащить незнаю, подскажите.
вроде все попорядку рассказал
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #3 : 14-04-2010 16:39 » 

на каком окне пытаешься создать ? На мейнфрейме что ли ? Никогда так не пробовал, но вроде бы так и не выйдет. Нужна или CView, или диалог или любой CWnd
Записан

SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 14-04-2010 16:43 » 

CTubeTabl            m_TubeTabl; базовый класс CWnd
на нем создаю он от окна наследован, должно получится


class CTubeTabl : public CWnd
вот так этот класс объявляется
« Последнее редактирование: 14-04-2010 16:59 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #5 : 14-04-2010 16:46 » 

создавай контрол в CTubeTabl::Create , размещай при помощи MoveWindow
Записан

SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 14-04-2010 16:53 » 

Это не контрол это окно на котором надо создать таблицу

Не понял попробую
« Последнее редактирование: 14-04-2010 16:59 от Алексей1153++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #7 : 14-04-2010 17:00 » 

я тоже пока ещё не понял ) Полная картина происходящего не ясна
Записан

SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 14-04-2010 17:14 » 

не помогло
Пробую еще раз.
Приложение SDI документ/вид отключил
при создании фрейма, создаю окно (наследник от CWnd)
как ты написал при создании этого окна создаю CListCtrl как описано выше
в ОnPaint окна делаю контролу MoveWindow как надо
Не появляется, вроде все по порядку рассказал, может напишешь че не понятно
Записан
SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 14-04-2010 17:19 » 

пробовал в SDI созданном без использования документ/вид на окне от CChildWiew создать CListCtrl не получилось
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #10 : 14-04-2010 17:31 » 

прикрепи проект
Записан

SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 14-04-2010 18:07 » 

вот:

* 1111.rar (35.17 Кб - загружено 850 раз.)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #12 : 14-04-2010 18:35 » 

Код:
list.Create(.......);
>>>>>>> list.ShowWindow(SW_SHOW);

и небольшая оптимизация

Код:
void CChildView::OnPaint()
{
CPaintDC dc(this); // device context for painting

CRect rec;
GetClientRect(&rec);

CRect LrecWhereIs_absolute;
list.GetWindowRect(&LrecWhereIs_absolute);

CRect LrecMustBe_absolute;
LrecMustBe_absolute=rec;
::MapWindowPoints(m_hWnd,0,(POINT*)&LrecMustBe_absolute,2);
if(LrecWhereIs_absolute!=LrecMustBe_absolute)
{
list.MoveWindow(rec);
}
}




« Последнее редактирование: 14-04-2010 18:38 от Алексей1153++ » Записан

SAndrus
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 14-04-2010 19:26 » 

Надо же и дело в ерунде. Спасибо
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #14 : 15-04-2010 04:55 » 

SAndrus, я тоже не сразу понял, ведь стиль видимости указан при создании. Пошарился спаем++ , нашёл листбокс - он стили показывает, а там WS_VISIBLE и нету ) Ну я его туды
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines