несколько вопросов по CListCtrl
От: Пластеев Владимир  
Дата: 17.02.02 04:31
Оценка:
Вот какие вопросы:
1)
есть у меня CTabCtrl, на одной из его вкладок нужно сделать что-то типа Грида.
как это сделать?
Следующий код компилиться, но при запуске приложения вываливается исключение на создание этого контрола.
CString strText;
pmyListCtrl->Create(
   WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,
   CRect(10,10,100,100), &m_ctrlTab, 1);

//int nColumnCount = pmyListCtrl->GetHeaderCtrl()->GetItemCount();

// Insert 10 items in the list view control.
for (int i=0;i < 10;i++)
{
   strText.Format(TEXT("item %d"), i);

   // Insert the item, select every other item.
   pmyListCtrl->InsertItem(
      LVIF_TEXT|LVIF_STATE, i, strText, 
      (i%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED,
      0, 0);

   // Initialize the text of the subitems.
   for (int j=1;j < nColumnCount;j++)
   {
      strText.Format(TEXT("sub-item %d %d"), i, j);
      pmyListCtrl->SetItemText(i, j, strText);
   }
}


2)
а как сделать, чтобы можно было выбирать всю строчку мышкой? те например есть у меня такая строка
item1 item01 item02
нужно чтобы при нажатии на item1(или item01 or item02) выделялась вся строчка.
3)
а как сделать, чтобы CListCtrl отображался как таблица?
+------+------+
|item1 | item2|
+------+------+
Re: несколько вопросов по CListCtrl
От: Аноним  
Дата: 17.02.02 06:14
Оценка:
Здравствуйте Пластеев Владимир, Вы писали:

ПВ>Вот какие вопросы:

ПВ>1)
ПВ>есть у меня CTabCtrl, на одной из его вкладок нужно сделать что-то типа Грида.
ПВ>как это сделать?
ПВ>Следующий код компилиться, но при запуске приложения вываливается исключение на создание этого контрола.
ПВ>
ПВ>CString strText;
pmyListCtrl->>Create(
ПВ>   WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,
ПВ>   CRect(10,10,100,100), &m_ctrlTab, 1);

ПВ>//int nColumnCount = pmyListCtrl->GetHeaderCtrl()->GetItemCount();

ПВ>// Insert 10 items in the list view control.
ПВ>for (int i=0;i < 10;i++)
ПВ>{
ПВ>   strText.Format(TEXT("item %d"), i);

ПВ>   // Insert the item, select every other item.
ПВ>   pmyListCtrl->InsertItem(
ПВ>      LVIF_TEXT|LVIF_STATE, i, strText, 
ПВ>      (i%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED,
ПВ>      0, 0);

ПВ>   // Initialize the text of the subitems.
ПВ>   for (int j=1;j < nColumnCount;j++)
ПВ>   {
ПВ>      strText.Format(TEXT("sub-item %d %d"), i, j);
ПВ>      pmyListCtrl->SetItemText(i, j, strText);
ПВ>   }
ПВ>}
ПВ>


ПВ>2)

ПВ>а как сделать, чтобы можно было выбирать всю строчку мышкой? те например есть у меня такая строка
ПВ>item1 item01 item02
ПВ>нужно чтобы при нажатии на item1(или item01 or item02) выделялась вся строчка.
ПВ>3)
ПВ> а как сделать, чтобы CListCtrl отображался как таблица?
ПВ>+------+------+
ПВ>|item1 | item2|
ПВ>+------+------+



чтобы выбирался вся строчку и CListCtrl отображался как таблица исползуи

SetExtendedStyle например

pmyListCtrl->Create(
WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,
CRect(10,10,100,100), &m_ctrlTab, 1);

pmyListCtrl->SetExtendedStyle ( LVS_EX_FULLROWSELECT |
LVS_EX_GRIDLINES );



Сперва надо исползовать InsertColumn и SetColumnWidth

pmyListCtrl->InsertColumn ( 0, strText, LVCFMT_CENTER );
pmyListCtrl->InsertColumn ( 1, strText, LVCFMT_CENTER );
pmyListCtrl->InsertColumn ( 2, strText, LVCFMT_CENTER );

pmyListCtrl->SetColumnWidth ( 0, 100 );
pmyListCtrl->SetColumnWidth ( 1, 100 );
pmyListCtrl->SetColumnWidth ( 2, 100 );

а патом твой код
Re: несколько вопросов по CListCtrl
От: Пластеев Владимир  
Дата: 17.02.02 07:01
Оценка:
спасибо, только все равно вываливается ошибка.
я эти действия делаю в void CICIG_aView::OnInitialUpdate()
может быть следует поместить это другое место?
но при этом я создаю тут же несколько диалогов и помещаю их на закладки и все работает.
Re[2]: несколько вопросов по CListCtrl
От: Андрей Россия  
Дата: 18.02.02 06:05
Оценка:
Здравствуйте Пластеев Владимир, Вы писали:

ПВ>спасибо, только все равно вываливается ошибка.

ПВ>я эти действия делаю в void CICIG_aView::OnInitialUpdate()
ПВ>может быть следует поместить это другое место?
ПВ>но при этом я создаю тут же несколько диалогов и помещаю их на закладки и все работает.

Ты напиши подробнее, что за ошибка. Это первое, а второе — ты используешь указатель, значит, где-то должен быть new — ты его, часом, не забыл сделать?
Re: несколько вопросов по CListCtrl
От: Аноним  
Дата: 18.02.02 12:27
Оценка:
Здравствуйте Пластеев Владимир.
Вставь себе эту строку (сетка)
m_ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
Re[3]: несколько вопросов по CListCtrl
От: Аноним  
Дата: 18.02.02 13:09
Оценка:
Здравствуйте Андрей, Вы писали:

А>Здравствуйте Пластеев Владимир, Вы писали:


ПВ>>спасибо, только все равно вываливается ошибка.

ПВ>>я эти действия делаю в void CICIG_aView::OnInitialUpdate()
ПВ>>может быть следует поместить это другое место?
ПВ>>но при этом я создаю тут же несколько диалогов и помещаю их на закладки и все работает.

А>Ты напиши подробнее, что за ошибка. Это первое, а второе — ты используешь указатель, значит, где-то должен быть new — ты его, часом, не забыл сделать?

похоже забыл.... а как правильно надо?
Unhandled exeption in ICIG.exe (MFC42.DLL): 0xC0000005: Access Violation.
Re[4]: несколько вопросов по CListCtrl
От: Андрей Россия  
Дата: 18.02.02 13:16
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте Андрей, Вы писали:


А>>Здравствуйте Пластеев Владимир, Вы писали:


ПВ>>>спасибо, только все равно вываливается ошибка.

ПВ>>>я эти действия делаю в void CICIG_aView::OnInitialUpdate()
ПВ>>>может быть следует поместить это другое место?
ПВ>>>но при этом я создаю тут же несколько диалогов и помещаю их на закладки и все работает.

А>>Ты напиши подробнее, что за ошибка. Это первое, а второе — ты используешь указатель, значит, где-то должен быть new — ты его, часом, не забыл сделать?

А>похоже забыл.... а как правильно надо?
А>Unhandled exeption in ICIG.exe (MFC42.DLL): 0xC0000005: Access Violation.


Не используй указатели там, где они не нужны, лучше объяви свой ListCtrl как переменную-член view, то есть примерно так:

class CICIG_aView : public CView
{
  CListCtrl m_wndListCtrl;

public:
  void OnInitialUpdate();
};


void CICIG_aView::OnInitialUpdate()
{
  ...
  m_wndListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, CRect(10,10,100,100), &m_ctrlTab, 1);
  ...
}

// ну и т.д.
Re: несколько вопросов по CListCtrl
От: Fox Россия  
Дата: 01.03.02 22:36
Оценка:
Здравствуйте Пластеев Владимир, Вы писали:

http://www.codeproject.com/miscctrl/gridctrl.asp

Вова загляни сюда, я так понимаю это тебе пригодиться. Хоть и не в тему но все-таки я замечаю это уже не первый раз тебе нужна Гридина
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.