Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CB_SETHORIZONTALEXTENT在下拉组合框底部提供一个空行_C++_Winapi - Fatal编程技术网

C++ CB_SETHORIZONTALEXTENT在下拉组合框底部提供一个空行

C++ CB_SETHORIZONTALEXTENT在下拉组合框底部提供一个空行,c++,winapi,C++,Winapi,这是本期的截图。我曾经 SendMessage(find,CB_SETHORIZONTALEXTENT,(WPARAM)200,0) 为下拉组合框创建水平滚动。但它在底部给出了一个空行。请告诉我如何解决这个问题 我知道这个问题已经问了2年了,但如果其他人(像我一样)碰到这个问题,我是如何解决的: 末尾的空格是由于对DropDownHeight属性计算错误造成的,该属性的默认值是根据ItemHeight(取决于Font)和MaxDropDownItems计算的 因此,如果手动添加水平滚动条(就像我

这是本期的截图。我曾经

SendMessage(find,CB_SETHORIZONTALEXTENT,(WPARAM)200,0)

为下拉组合框创建水平滚动。但它在底部给出了一个空行。请告诉我如何解决这个问题


我知道这个问题已经问了2年了,但如果其他人(像我一样)碰到这个问题,我是如何解决的:

末尾的空格是由于对
DropDownHeight
属性计算错误造成的,该属性的默认值是根据
ItemHeight
(取决于
Font
)和
MaxDropDownItems
计算的

因此,如果手动添加水平滚动条(就像我添加WS_HSCROLL样式那样),则需要重新计算
下拉高度,如下所示:

DropDownHeight = SystemInformation.HorizontalScrollBarHeight
                 + 2 + ItemHeight * MaxDropDownItems;
其中
2
表示边界

编辑

考虑到更广泛适用性的系统边界

DropDownHeight = ItemHeight * MaxDropDownItems 
                 + SystemInformation.HorizontalScrollBarHeight 
                 + 2 * SystemInformation.BorderSize.Height;

您确定您的代码没有添加空字符串作为第一个字符串吗?你能突出显示空行吗?如果是,它是实际的项目,而不与SeStruZONTALLATE调用有关。那个家伙是C++的,我觉得这是.NET。是的,我有C代码,但是我用C++ API来实现这个功能,所以这是可能的。如果他在C++代码中,他只需要翻译代码。然后…这个问题有两年历史了。。所以我怀疑这对他来说很重要。。。我的回答是,无论谁在未来偶然发现这种问题,我的主要想法都是重要的,
dropdownheight
需要重新计算,无论用哪种语言