Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual C++ / MFC / WTL > Как изменить текст в CHeaderCtrl ?


Автор: erslgoeirjh 02.04.19, 06:29
Есть таблица m_IDC_LIST1 типа CListCtrl. В этой таблице есть заголовок.
Как в этой таблице сменить текст в её заголовке в самом первом (нулевом) столбце?

Этот код не работает:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    HDITEMW  headerItem;
    m_IDC_LIST1.GetHeaderCtrl()->GetItem(0,&headerItem);
    if (m_IDC_COMBO4.GetCurSel()==0)
        wcscpy(ws,L"tоск (ET)");
    if (m_IDC_COMBO4.GetCurSel()==1)
        wcscpy(ws,L"tоск (ДМВ)");
    if (m_IDC_COMBO4.GetCurSel()==2)
        wcscpy(ws,L"tоск (UTC)");
    n = wcslen(ws);
    headerItem.pszText = new wchar_t[n+1];
    wcscpy(headerItem.pszText,ws);
    m_IDC_LIST1.GetHeaderCtrl()->SetItem(0,&headerItem);
    m_IDC_LIST1.GetHeaderCtrl()->RedrawWIndow();
    //...
    m_IDC_LIST1.RedrawWindow();



Как решить эту проблему?

Автор: Олег М 02.04.19, 06:54
Цитата erslgoeirjh @
Как решить эту проблему?

Сначала сделать HDITEMW headerItem = {0};
Потом выставить headerItem.mask = HDI_TEXT

Этого можно не делать - m_IDC_LIST1.GetHeaderCtrl()->GetItem(0,&headerItem);

Автор: erslgoeirjh 02.04.19, 09:48
Ясно, спасибо!

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)