CListCtrl показывает разные темы для Unicode и многобайтового набора символов - PullRequest
0 голосов
/ 07 января 2020

Тема управления списком отображает другую тему при изменении набора символов: Unicode vs Multi Byte

Фрагмент кода,

private:
CListCtrl m_list;

m_list.SetExtendedStyle(LVS_EX_GRIDLINES);
// TODO: Add extra initialization here

// Ask Mfc to create/insert a column
m_list.InsertColumn(
    0,              // Rank/order of item
    L"Name",         // Caption for this header
    LVCFMT_LEFT,    // Relative position of items under header
    100);          // Width of items under header

m_list.InsertColumn(1, L"Profession", LVCFMT_CENTER, 80);
m_list.InsertColumn(2, L"Fav. Sport", LVCFMT_LEFT, 100);
m_list.InsertColumn(3, L"Hobby", LVCFMT_LEFT, 80);

int nItem;

nItem = m_list.InsertItem(0, L"Sandra C. Anschwitz");
m_list.SetItemText(nItem, 1, L"Singer");
m_list.SetItemText(nItem, 2, L"HandBall");
m_list.SetItemText(nItem, 3, L"Beach");

nItem = m_list.InsertItem(0, L"Roger A. Miller");
m_list.SetItemText(nItem, 1, L"FootBaller");
m_list.SetItemText(nItem, 2, L"Tennis");
m_list.SetItemText(nItem, 3, L"Teaching");

Как получить тему Unicode в Многобайтовый набор символов?

1 Ответ

3 голосов
/ 07 января 2020

Если вы сгенерировали этот проект с помощью мастера приложений в Visual C ++, возможно, в вашем файле stdafx.h есть следующие строки:

#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

Это причина, по которой вы работаете по-другому. Есть технические причины , чтобы не использовать Common Controls 6 в вашем приложении MBCS. Однако, если вы можете успешно построить UNICODE, просто сделайте это. Любая поддерживаемая Windows ОС поддерживает UNICODE, и это то, что вы должны использовать в любом случае. Просто скажите НЕТ MBCS.

...