Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ClistView слежение за колонками, ClistView слежение за колонками 
:(
    Опции темы
Bekass
Дата 12.1.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть класс ClistView в режиме Репорт (интерфейс типа командера)

Изначально при открытии окна задаю ширины колонок.
При именении размеров окна надо чтобы соответственно изменялись ширины колонок,
а также при изменении ширины колонок это изменение оставалось...
Делал типа
Код

void CFarma3View::OnSize(UINT nType, int cx, int cy)
{
    CListView::OnSize(nType, cx, cy);
    CListCtrl& refCtrl = GetListCtrl();
    
    CRect Form1 ;
    refCtrl.GetClientRect(&Form1);

    int fsz=0;
int Sizes[10]={12,12,12,12,45,56,56,56,56}
    if(Form1.Width()>300)    
    {
        for(short i = 1; i < ch->N; i++)
        {
            refCtrl.SetColumnWidth(i-1, (Form1.Width()) * Sizes[i]/100);
            fsz+=ch->Sizes[i];
        }
        refCtrl.SetColumnWidth(i-1, (Form1.Width())-((Form1.Width())* fsz/100)   );
    }
    

    COleClientItem* pActiveItem = GetDocument()->GetInPlaceActiveItem(this);
    if (pActiveItem != NULL)
        pActiveItem->SetItemRects();
        
}



Но в этом случае если пользователь меняет ширину кодонки, оно не сохраняется,естественно, при изменении окна

???????????????????????????????
PM MAIL   Вверх
Earnest
Дата 13.1.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Два варианта:
1) Лови уведомление от header-control, кажется, HDN_ENDTRACK (которое приходит после заверщения изменения ширины колонки пользователем) и в нем считывай новую ширину. Ловить уведомление нужно в ListView, потому что header - его child. Для этого нужно знать ид-р header'а. По-моему 1, но нужно проверить Спаем.
2) Перед тем как изменять размеры колонок по ресайзу, опроси их текущие ширины (GetColumnWidth).
Второе проще, первое дает возможность управлять изменением ширины колонок (скажем, запретить уменьшение колонки ниже какого-то предела).


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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