나는 노력하고 있어요 : 컬럼의 결과 폭이 해당 열에서 가장 큰 문자열 중 하나 20/30 % 더 큰에CListCtrl에서 가장 긴 문자열의 너비로 열 너비를 조정하는 방법은 무엇입니까?
tstring subItemText;
CDC* pDc = GetListCtrl().GetDC();
for (int row = GetItemCount() - 1; row >= 0; --row)
{
subItemText = _T("");
for (int col = 0; col < NumCol; ++col)
{
subItemText = this->GetSubItemString(GetItemData(row), col);
CSize sz;
// get length of the string in logical units, by default 1 unit == 1 pixel, type of font is accounted
sz = pDc->GetOutputTextExtent(subItemText.c_str());
if (static_cast<int>(sz.cx) > ColWidth[col])
ColWidth[col] = sz.cx;
}
}
GetListCtrl().ReleaseDC (pDc);
for (int col = 0; col < NumCol; ++col)
{
SetColumnWidth(col, ColWidth[col]);
}
으로. 열의 너비가 최대 길이 인 string의 너비와 같아야합니다.
미리 감사드립니다.
이제 열의 너비가 필요한 것보다 작습니다. –
목록 컨트롤 소유자가 그려져 있습니까? –
예, 항목 그리기 구현 –