listview fix so that columns autosize correctly

This commit is contained in:
William Hamilton 2013-01-12 14:58:43 -06:00
parent e04fcf3527
commit ce0320e2ad
3 changed files with 13 additions and 4 deletions

View File

@ -170,6 +170,8 @@ void OBS::AddSourceItem(LPWSTR name, bool checked, UINT index)
ListView_InsertItem(hwndSources, &lvI); ListView_InsertItem(hwndSources, &lvI);
ListView_SetCheckState(hwndSources, index, checked); ListView_SetCheckState(hwndSources, index, checked);
ListView_SetColumnWidth(hwndSources, 0, LVSCW_AUTOSIZE_USEHEADER);
ListView_SetColumnWidth(hwndSources, 1, LVSCW_AUTOSIZE_USEHEADER);
} }
bool OBS::SetScene(CTSTR lpScene) bool OBS::SetScene(CTSTR lpScene)

View File

@ -708,7 +708,7 @@ OBS::OBS()
SetWindowLongPtr(hwndTemp, GWLP_WNDPROC, (LONG_PTR)OBS::ListboxHook); SetWindowLongPtr(hwndTemp, GWLP_WNDPROC, (LONG_PTR)OBS::ListboxHook);
//----------------------------------------------------- //-----------------------------------------------------
// elements listbox // elements listview
hwndTemp = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, NULL, hwndTemp = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, NULL,
WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_CLIPSIBLINGS|LVS_REPORT|LVS_NOCOLUMNHEADER| WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_CLIPSIBLINGS|LVS_REPORT|LVS_NOCOLUMNHEADER|
@ -720,11 +720,13 @@ OBS::OBS()
//add single column needed for report style //add single column needed for report style
LVCOLUMN column; LVCOLUMN column;
column.mask = LVCF_TEXT | LVCF_WIDTH; column.mask = LVCF_TEXT;
column.fmt = LVCFMT_FIXED_WIDTH; column.fmt = LVCFMT_FIXED_WIDTH;
column.cx = listControlWidth - controlPadding * 3 ; column.cx = 0;
column.pszText = TEXT(""); column.pszText = TEXT("");
ListView_InsertColumn(hwndTemp, 0, &column); ListView_InsertColumn(hwndTemp, 0, &column);
ListView_InsertColumn(hwndTemp, 1, &column);
listviewProc = (WNDPROC)GetWindowLongPtr(hwndTemp, GWLP_WNDPROC); listviewProc = (WNDPROC)GetWindowLongPtr(hwndTemp, GWLP_WNDPROC);
SetWindowLongPtr(hwndTemp, GWLP_WNDPROC, (LONG_PTR)OBS::ListboxHook); SetWindowLongPtr(hwndTemp, GWLP_WNDPROC, (LONG_PTR)OBS::ListboxHook);

View File

@ -803,6 +803,11 @@ LRESULT CALLBACK OBS::ListboxHook(HWND hwnd, UINT message, WPARAM wParam, LPARAM
} }
if(message == WM_SIZE && id == ID_SOURCES)
{
ListView_SetColumnWidth(hwnd, 0, LVSCW_AUTOSIZE_USEHEADER);
ListView_SetColumnWidth(hwnd, 1, LVSCW_AUTOSIZE_USEHEADER);
}
if(id == ID_SOURCES) if(id == ID_SOURCES)
{ {
return CallWindowProc(listviewProc, hwnd, message, wParam, lParam); return CallWindowProc(listviewProc, hwnd, message, wParam, lParam);