У меня есть CListCtrl с достаточным пространством для всех предметов, и все они отображаются правильно - до тех пор, пока не будут выбраны! Как только любая запись выбрана, конец этой записи усекается и добавляется многоточие:
Нажмите для изображения
Понятия не имею, почему это происходит. Вы не можете видеть это на этом изображении, но даже очень короткие записи показывают это поведение, даже если записи выше или ниже намного длиннее и отображаются полностью. Вот код .rc, который создал элемент управления (и диалоговое окно):
IDD_COMBOBOX_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE |
WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "ComboBox"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,263,7,50,16
PUSHBUTTON "Cancel",IDCANCEL,263,25,50,16
CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL |
LVS_SORTASCENDING | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER |
WS_TABSTOP,7,78,306,85
END
и вот код из InitDialog (), который устанавливает и заполняет CListCtrl:
myListCtrl.InsertColumn(0,_T("Allergies"));
FILE *f = fopen("c:\\allergies.txt", "r");
char sz[100];
if (f)
while (fgets(sz,100,f))
myListCtrl.InsertItem(0, sz);
if (f)
fclose(f);
myListCtrl.SetColumnWidth(0,LVSCW_AUTOSIZE);
LVFINDINFO FI;
FI.flags = LVFI_PARTIAL|LVFI_STRING;
FI.psz = _T("A");
int i = myListCtrl.FindItem(&FI);
myListCtrl.SetItemState(i, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
myListCtrl.EnsureVisible(i, FALSE);
Этот сводит меня с ума. Любые советы будут очень признательны! Спасибо, что посмотрели.