Как получить количество столбцов в элементе управления списком

Мне нужно получить количество столбцов в элементе управления списком в режиме отчета.

Прямо сейчас я отправляю LVM_GETCOLUMN с увеличением номера столбца до SendMessage возвращается FALSE:

int col;
for (col = 0;; col++)
{ 
  LVCOLUMN Column;
  Column.mask = LVCF_WIDTH;
  if (!::SendMessage(hWnd, LVM_GETCOLUMN, col, (LPARAM)Column)
    break;
}

Но это довольно неловко.

1 ответ

Решение

Вы можете получить количество столбцов из элемента управления заголовка элемента управления списком.

HWND hWndHdr = (HWND)::SendMessage(hWnd, LVM_GETHEADER, 0, 0);
int count = (int)::SendMessage(hWndHdr, HDM_GETITEMCOUNT, 0, 0L);
Другие вопросы по тегам