Здравствуйте.
Есть List View, в котором пользователь может изменить текст элемента.
Код | m_hListView = ::CreateWindow( WC_LISTVIEW, _T(""), WS_CHILD | WS_VISIBLE | WS_BORDER | LVS_ICON | LVS_AUTOARRANGE | LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_EDITLABELS, 0, 0, 0, 0, hParentWindow, (HMENU)ID, ::GetModuleHandle( 0 ), NULL );
|
Код | case LVN_GETDISPINFO: { pLvdi->item.pszText = itemTextArray.at( pLvdi->item.iItem ); break; } case LVN_ENDLABELEDIT: { if( pLvdi->item.pszText == NULL ) break; _tcscpy_s( itemTextArray.at( pLvdi->item.iItem ), 255, pLvdi->item.pszText ); break; }
|
Проблема в том, что после изменения текста, размер label'а, содержащего текст не изменяется. Например, если текст был короткий (4 символа) и его заменили на длинный (16 символов), то после редактирования в label'е видно только 4 символа (в режиме редактирования видно всю строку). Наоборот, если текст был длинный (16 символов) и его заменили на короткий (4 символа), то после редактирования, когда элемент выделен, видно, что label растянут на 16 символов и в нем короткий текст по центру. Никаких специальных сообщений, управляющих размером label'а я не нашел. Как можно сделать, чтобы label подгонялся под размер текста? |