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

Winapi 如何在调整窗口大小时更改所有者绘制列表框项目的高度?,winapi,listbox,Winapi,Listbox,我有LBS_OWNERDRAWVARIABLE样式的列表框,并尝试使用WM_MEASUREITEM on WM_SIZE调整项目高度 接下来我在WM_SIZE过程中编写了代码,参考: 然而,它不起作用。。。(不生成WM_测量项目。) 问题:如何强制生成WM_MESUREITEM,或动态调整项目高度 我使用C++和Win32,而不是MFC。< P>使用消息来更改ListBox项目的高度。然而,在WM_WindowPos更改之前,我尝试了LB_SETITEMHEIGHT,结果有些奇怪。(重新绘制问题

我有LBS_OWNERDRAWVARIABLE样式的列表框,并尝试使用WM_MEASUREITEM on WM_SIZE调整项目高度

接下来我在WM_SIZE过程中编写了代码,参考:

然而,它不起作用。。。(不生成WM_测量项目。)

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


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

< P>使用消息来更改ListBox项目的高度。然而,在WM_WindowPos更改之前,我尝试了LB_SETITEMHEIGHT,结果有些奇怪。(重新绘制问题、错误的滚动位置等)困难的cookies,只有清除并重新添加项目看起来足够好,才能重新测量项目。“这在“不要做那件事”的名单上排得很高。@HansPassant谢谢你的建议。走错了吗?但我不知道。。。
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);