如何更改所有者绘制列表框项目的高度,以调整窗口大小?

时间:2015-10-20 07:52:36

标签: winapi listbox

我有LBS_OWNERDRAWVARIABLE样式的Listbox,并尝试在WM_SIZE上使用W​​M_MEASUREITEM调整项目高度。

我接下来在WM_SIZE程序中编写了代码,引用了http://www.codeproject.com/Articles/1401/Changing-Row-Height-in-an-owner-drawn-Control

WINDOWPOS wp;
ZeroMemory (&wp, sizeof(WINDOWPOS));

wp.hwnd  = hwndListbox;
wp.cx    = iWidht;
wp.cy    = iHeight;
wp.flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER;

// WM_WINDOWPOSCHANGED for force generate WM_MEASUREITEM:
SendMessage (hwndListbox, WM_WINDOWPOSCHANGED, 0, (LPARAM)&wp);

然而,它已经工作了......(选择不生成WM_MESUREITEM。)

问题:如何强制生成WM_MESUREITEM,或动态调整项目高度?

p.s我使用C ++和Win32,而不是MFC。

1 个答案:

答案 0 :(得分:1)

使用LB_SETITEMHEIGHT消息更改列表框项目的高度。