如何获取 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;
我有一个 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;