Authors: Chris Morgan <cmorgan@wpi.edu>, James Abbatiello <abbeyj@wpi.edu>
Implemented SetColumnWidth for ListView control.
This commit is contained in:
parent
a16a032c06
commit
bce73ad5b2
|
@ -4669,6 +4669,55 @@ static LRESULT LISTVIEW_SetColumnA(HWND hwnd, INT nColumn,
|
|||
return bResult;
|
||||
}
|
||||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Sets the width of a column
|
||||
*
|
||||
* PARAMETERS:
|
||||
* [I] HWND : window handle
|
||||
* [I] INT : column index
|
||||
* [I] INT : column width
|
||||
*
|
||||
* RETURN:
|
||||
* SUCCESS : TRUE
|
||||
* FAILURE : FALSE
|
||||
*/
|
||||
static LRESULT LISTVIEW_SetColumnWidth(HWND hwnd, INT iCol, INT cx)
|
||||
{
|
||||
LISTVIEW_INFO *infoPtr;
|
||||
HDITEMA hdi;
|
||||
LRESULT lret;
|
||||
LONG lStyle;
|
||||
|
||||
// set column width only if in report mode
|
||||
lStyle = GetWindowLongA(hwnd, GWL_STYLE);
|
||||
if ((lStyle & LVS_TYPEMASK) != LVS_REPORT)
|
||||
return (FALSE);
|
||||
|
||||
// make sure we can get the listview info
|
||||
if (!(infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0)))
|
||||
return (FALSE);
|
||||
if (!infoPtr->hwndHeader) // make sure we have a header
|
||||
return (FALSE);
|
||||
|
||||
// FIXME: currently ignoring LVSCW_AUTOSIZE (-1) and
|
||||
// LVSCV_AUTOSIZE_USEHEADER (-2)
|
||||
if (cx < 0)
|
||||
return (FALSE);
|
||||
|
||||
hdi.mask = HDI_WIDTH;
|
||||
hdi.cxy = cx;
|
||||
|
||||
// call header to update the column change
|
||||
lret = Header_SetItemA(infoPtr->hwndHeader, (WPARAM)iCol, (LPARAM)&hdi);
|
||||
|
||||
infoPtr->nItemWidth = LISTVIEW_GetItemWidth(hwnd, LVS_REPORT);
|
||||
|
||||
InvalidateRect(hwnd, NULL, TRUE); // force redraw of the listview
|
||||
|
||||
return lret;
|
||||
}
|
||||
|
||||
/***
|
||||
* DESCRIPTION:
|
||||
* Sets image lists.
|
||||
|
@ -6517,7 +6566,10 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
|
|||
|
||||
/* case LVM_SETCOLUMNW: */
|
||||
/* case LVM_SETCOLUMNORDERARRAY: */
|
||||
/* case LVM_SETCOLUMNWIDTH: */
|
||||
|
||||
case LVM_SETCOLUMNWIDTH:
|
||||
return LISTVIEW_SetColumnWidth(hwnd, (INT)wParam, (INT)lParam);
|
||||
|
||||
/* case LVM_SETEXTENDEDLISTVIEWSTYLE: */
|
||||
/* case LVM_SETHOTCURSOR: */
|
||||
/* case LVM_SETHOTITEM: */
|
||||
|
|
Loading…
Reference in New Issue