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

时间:2015-03-13 17:49:01

标签: winapi listbox width multiple-columns

我有一个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后,列宽已更改 如何获得此列表框的新宽度第一列?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用LB_GETITEMRECT消息:

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