2015-03-13 51 views
1

我有一个Win32多列列表框:如何获取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

您可以使用该LB_GETITEMRECT消息:

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