Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CListCtrl.. 
:(
    Опции темы
ПашкаКорчагин
Дата 3.5.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



начинаю осваивать MFC.. пока пытаюсь не пользовать Визард.. пишу все вручную..*думаю не стоит пояснять почему вручную когда есть визард*
возникли некоторые проблемы...

в MainWnd.h объявил переменную  CListCtrl m_list; 

в MainWnd.cpp 


   
Код

m_list.Create( 
      WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_SINGLESEL, 
      CRect(10,40,610,rtClient.Height()-50),this,ID_LISTCTRL 
      ); //створив сам  CListCtrl обєкт 
   m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT); 

   m_list.InsertColumn(0,_T("test1"),LVCFMT_LEFT,200); 
   m_list.InsertColumn(1,_T("test2"),LVCFMT_LEFT,200); 
   m_list.InsertColumn(2,_T("test3"),LVCFMT_LEFT,200);    



задача в том, чтобы по ходу выполнения программы вписывать в сей Лист некоторые переменные..

написал следуюющую функцию..    

v
Код

oid CMainWnd::UpdateList(){ 
    
   for (int i=0; i<ob_arr.GetCount();++i) 
   { 
      CPerson*pers=(CPerson*)ob_arr[i];//CObArray ob_arr; 
      TCHAR *name; 
      name=new TCHAR[sizeof(pers->GetName())]; 
      lstrcpy(name,pers->GetName()); 

       

      LVITEM lvi; 
      lvi.pszText = name; 
      lvi.cchTextMax = wcslen(lvi.pszText); 
      lvi.iItem = i; 
      lvi.iSubItem = 0; 
      lvi.iImage = 0; 
      lvi.mask = LVIF_TEXT|LVIF_IMAGE; 
      m_list.InsertItem(&lvi);//left of '.InsertItem' must have class/struct/union type 
       

      //m_list.SetItemText(i,1,pers->GetPhone()); 
      //m_list.SetItemText(i,2,pers->GetEmail()); 


       
   } 
}    




и тут началось...

1. Почему я обизательно должен заполнять LVITEM структуру, а не использовать
BOOL SetItemText( 
int nItem, 
int nSubItem, 
LPCTSTR lpszText 
);
Пример: m_list.SetItemText(i,1,_T("i.1 test")); 

2. привидение типов. Так, vi.cchTextMax принимает строку типа LPWSTR, а имеется CString.
Выкрутился ..
Код

TCHAR *name; 
name=new TCHAR[sizeof(pers->GetName())]; 
lstrcpy(name,pers->GetName());
    
...но это же не выход...не заводить же мне беферную переменную каждый раз кода хочу преобразовать строку одного типа к другому...



3. непонятное  
Код

m_list.InsertItem(&lvi);//left of '.InsertItem' must have class/struct/union type
 
PM MAIL   Вверх
Бугемот
Дата 4.5.2006, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.12.2005

Репутация: 1
Всего: 1



Цитата(ПашкаКорчагин @  3.5.2006,  13:49 Найти цитируемый пост)
1. Почему я обизательно должен заполнять LVITEM структуру, а не использовать
BOOL SetItemText( 

сначала сделай InsertItem, а потом уже SetItemText 
PM MAIL   Вверх
ПашкаКорчагин
Дата 4.5.2006, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



отлично...розобрались...
еще вопрос как можна получить индекс выделеного рядка.. 
PM MAIL   Вверх
LPNcom
Дата 4.5.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.5.2006

Репутация: нет
Всего: нет



POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
{
   // если не выделено ни одного рядка
}
else
{
   while (pos) //перебираем всё что выделено
   {

      int nItem = pList->GetNextSelectedItem(pos);  //  в nItem индекс очередного
   
   }
} 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0721 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.