Winapi 组合框掉了?

Winapi 组合框掉了?,winapi,combobox,Winapi,Combobox,有没有办法使组合框向上而不是向下放置?没有使用标准的Windows组合框(以下是可用的) 正如@ILMV所说,如果盒子下面没有足够的空间,Windows会将盒子向上而不是向下放置 您可以使用记事本-转到格式->字体,然后向下拖动该框,使脚本组合框正好位于“开始”菜单上方。单击组合框-它将弹出 如果你想让它一直掉下去,你必须自己做。我已经回答了这个问题,但它是用Delphi写的(虽然代码并不难理解): 您需要使用SetWindowLong(GWL\u WNDPROC)对组合框hwdlist(通过

有没有办法使组合框向上而不是向下放置?

没有使用标准的Windows组合框(以下是可用的)

正如@ILMV所说,如果盒子下面没有足够的空间,Windows会将盒子向上而不是向下放置

您可以使用记事本-转到格式->字体,然后向下拖动该框,使脚本组合框正好位于“开始”菜单上方。单击组合框-它将弹出


如果你想让它一直掉下去,你必须自己做。

我已经回答了这个问题,但它是用Delphi写的(虽然代码并不难理解):


您需要使用
SetWindowLong
GWL\u WNDPROC
)对组合框
hwdlist
(通过API获得该句柄)进行子类化,并处理
WM\u MOVE
消息,以将该
hwdlist
置于一个新位置。

我感觉这是由操作系统处理的,这取决于它是否有空间以正常方式显示组合框。当然,但如何更改行为?将父窗口移到靠近屏幕底部的位置:)我真正想要的是一个类似于进程内重写API函数的想法,组合框使用它来请求屏幕高度。还有更简单的吗?