Winapi 如何在调整窗口大小时更改所有者绘制列表框项目的高度?
我有LBS_OWNERDRAWVARIABLE样式的列表框,并尝试使用WM_MEASUREITEM on WM_SIZE调整项目高度 接下来我在WM_SIZE过程中编写了代码,参考: 然而,它不起作用。。。(不生成WM_测量项目。) 问题:如何强制生成WM_MESUREITEM,或动态调整项目高度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,结果有些奇怪。(重新绘制问题
我使用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);