Winapi MEASUREITEMSTRUCT:真的需要宽度吗?

Winapi MEASUREITEMSTRUCT:真的需要宽度吗?,winapi,combobox,Winapi,Combobox,我目前正在Windows上玩组合框(cmbobox),我实现了一个包含一些项目的下拉组合框 要获取单个项目的维度,API提供了(要覆盖的)方法cmbobox::MeasureItem 声明上述例程必须设置组合框项、列表项或菜单项的高度。但是,对于宽度,它只说明必须为菜单项设置宽度(其他两个-列表项和组合框项-未提及)。因此,我尝试省略itemWidth,它仍然有效(这对我来说很有意义,因为列表或组合框项目(几乎?)总是全宽的) 因此,我的问题是:itemWidth字段是否不需要由我的cmbobo

我目前正在Windows上玩组合框(
cmbobox
),我实现了一个包含一些项目的下拉组合框

要获取单个项目的维度,API提供了(要覆盖的)方法
cmbobox::MeasureItem

声明上述例程必须设置组合框项、列表项或菜单项的高度。但是,对于宽度,它只说明必须为菜单项设置宽度(其他两个-列表项和组合框项-未提及)。因此,我尝试省略
itemWidth
,它仍然有效(这对我来说很有意义,因为列表或组合框项目(几乎?)总是全宽的)


因此,我的问题是:
itemWidth
字段是否不需要由我的
cmbobox::MeasureItem
实现来填写,还是我真的必须同时指定宽度和高度?

组合框列表的宽度由以下消息控制:

应用程序发送CB_SETDROPPEDWIDTH消息,以设置具有CBS_下拉列表或CBS_DROPDOWNLIST样式的组合框的列表框的最小允许宽度(以像素为单位)

默认情况下,下拉列表框的最小允许宽度为零列表框的宽度是允许的最小宽度或组合框宽度,以较大者为准。


这就是为什么不需要在
WM\u MEASUREITEM
消息处理程序中提供宽度。

组合框列表的宽度由消息控制:

应用程序发送CB_SETDROPPEDWIDTH消息,以设置具有CBS_下拉列表或CBS_DROPDOWNLIST样式的组合框的列表框的最小允许宽度(以像素为单位)

默认情况下,下拉列表框的最小允许宽度为零列表框的宽度是允许的最小宽度或组合框宽度,以较大者为准。


这就是为什么不需要在
WM\u MEASUREITEM
消息处理程序中提供宽度。

组合框列表的宽度由消息控制:

应用程序发送CB_SETDROPPEDWIDTH消息,以设置具有CBS_下拉列表或CBS_DROPDOWNLIST样式的组合框的列表框的最小允许宽度(以像素为单位)

默认情况下,下拉列表框的最小允许宽度为零列表框的宽度是允许的最小宽度或组合框宽度,以较大者为准。


这就是为什么不需要在
WM\u MEASUREITEM
消息处理程序中提供宽度。

组合框列表的宽度由消息控制:

应用程序发送CB_SETDROPPEDWIDTH消息,以设置具有CBS_下拉列表或CBS_DROPDOWNLIST样式的组合框的列表框的最小允许宽度(以像素为单位)

默认情况下,下拉列表框的最小允许宽度为零列表框的宽度是允许的最小宽度或组合框宽度,以较大者为准。


这就是为什么您不需要在
WM\u MEASUREITEM
消息处理程序中提供宽度。

组合框不使用它,列表框和菜单可以使用它。@JonathanPotter:我也这么认为,但除了我引用的MSDN页面之外,我找不到任何参考。你还知道其他的参考资料吗?MSDN是参考资料,寻找其他参考资料毫无意义。@HansPassant:True。通过引用,我想到了一些开源项目、书籍、工作和经过良好测试的实现,等等。它们不使用项目宽度。组合框不使用它,列表框和菜单可以使用它。@JonathanPotter:我也这么认为,但除了我引用的MSDN页面之外,我找不到任何关于它的引用。你还知道其他的参考资料吗?MSDN是参考资料,寻找其他参考资料毫无意义。@HansPassant:True。通过引用,我想到了一些开源项目、书籍、工作和经过良好测试的实现,等等。它们不使用项目宽度。组合框不使用它,列表框和菜单可以使用它。@JonathanPotter:我也这么认为,但除了我引用的MSDN页面之外,我找不到任何关于它的引用。你还知道其他的参考资料吗?MSDN是参考资料,寻找其他参考资料毫无意义。@HansPassant:True。通过引用,我想到了一些开源项目、书籍、工作和经过良好测试的实现,等等。它们不使用项目宽度。组合框不使用它,列表框和菜单可以使用它。@JonathanPotter:我也这么认为,但除了我引用的MSDN页面之外,我找不到任何关于它的引用。你还知道其他的参考资料吗?MSDN是参考资料,寻找其他参考资料毫无意义。@HansPassant:True。通过参考,我想到了一些不使用项目宽度的开源项目、书籍、工作和经过良好测试的实现等。