如何获取 Win32 列表框的列宽?

How to get column width of a Win32 listbox?

我有一个 Win32 多列列表框:

HWND hListBox = CreateWindowEx(NULL, TEXT("LISTBOX"), NULL, LBS_MULTICOLUMN | WS_CHILD | WS_BORDER | WS_VISIBLE | WS_VSCROLL | LBS_NOTIFY, 0, 25, 600, 450, hWnd, NULL, NULL, NULL);

我添加这样的项目:

SendMessage(hListBox, LB_ADDSTRING, NULL, (LPARAM)("New items"));

将一些项目添加到 hListBox 后,列宽发生了变化。
我怎样才能得到这个列表框的第一列 的新 宽度?谢谢!

您可以为此使用 LB_GETITEMRECT 消息:

RECT rc;
SendMessage(hWndLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
int iItemWidth = rc.right - rc.left;