Как отловить сообщение об изменении ширины столбца CListCtrl
От: Alhim Украина  
Дата: 18.03.03 15:58
Оценка:
Как узнать когда пользователь изменит ширину столбца ListCtrl который представлен как Report или заполнить текстом последнюю колонку???
Re: Как отловить сообщение об изменении ширины столбца CList
От: Кирпа В.А. Украина  
Дата: 18.03.03 16:12
Оценка:
Здравствуйте, Alhim, Вы писали:

A>Как узнать когда пользователь изменит ширину столбца ListCtrl который представлен как Report


Поставить обработчики на
НDN_BEGINTRACK
HDN_TRACK
HDN_ENDTRACK

A>или заполнить текстом последнюю колонку???




CHeaderCtrl *pHeader = m_List.GetHeaderCtrl();
int num = pHeader->GetItemCount();

m_List.SetItemText(i, num - 1, "Вот и все дела");
!0xDEAD
Re[2]: Как отловить сообщение об изменении ширины столбца CL
От: fregate Россия  
Дата: 28.10.05 09:16
Оценка:
Здравствуйте, Кирпа В.А., Вы писали:

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


A>>Как узнать когда пользователь изменит ширину столбца ListCtrl который представлен как Report


КВА>Поставить обработчики на

КВА>НDN_BEGINTRACK
КВА>HDN_TRACK
КВА>HDN_ENDTRACK

Да, после них, ширина столбца фиксируется. Но остается некрасивый такой эффект, как мерцание, пока растягиваешь или, например, изменяешь ширину и с нажатой мышкой никуда не двигаешь — все мерцает, в поле заголовка иногда промеликивает полный заголовок — если, например, был там текст. Как его можно побороть?
Ставил в обработчиках Setredraw(FALSE) для заголовка. Что-то не спасает. Как еще можно запретить перерисовываться?
Re[3]: Как отловить сообщение об изменении ширины столбца CL
От: Conductor СССР  
Дата: 28.10.05 09:39
Оценка:
Исправлено форматирование текста. — SchweinDeBurg

Если нужно запретить изменять размеры столбцов, можно так: отнаследоваться от CListCtrl;
+ PreTranslateMessage

BOOL CMyListCtrl::PreTranslateMessage(MSG* pMsg) 
{
    if( pMsg->hwnd == GetHeaderCtrl()->GetSafeHwnd() )
    {
        if( pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONDBLCLK )
            return TRUE;
    }

    return CListCtrl::PreTranslateMessage(pMsg);
}
Re[4]: Как отловить сообщение об изменении ширины столбца CL
От: fregate Россия  
Дата: 28.10.05 10:17
Оценка:
Здравствуйте, Conductor, Вы писали:

C>Если нужно запретить изменять размеры столбцов, можно так: отнаследоваться от CListCtrl;

C>+ PreTranslateMessage

C>
C>BOOL CMyListCtrl::PreTranslateMessage(MSG* pMsg) 
C>{
C>    if( pMsg->hwnd == GetHeaderCtrl()->GetSafeHwnd() )
C>    {
C>        if( pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONDBLCLK )
C>            return TRUE;
C>    }

C>    return CListCtrl::PreTranslateMessage(pMsg);
C>}
C>

Возможно, но мне надо, что бы нельзя было изменять размеры определенных столбцов (чего я уже добился). Надо понять, как запретить экрану моргать, что бы не так это сильно было заметно.
[от модератора]
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 28.10.05 10:54
Оценка:
Убедительная просьба — использовать коды форматирования при вставке текстов программ.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.