-1

我正在尝试创建一个下拉菜单,但在 MSDN 上也找不到任何文档。

edit = CreateWindow("Button", "1h2f3d4", WS_BORDER |WS_CHILD | WS_VISIBLE | BS_SPLITBUTTON, 5, 30, 23, 20, hWnd, (HMENU) ID_EDIT, NULL, NULL);

它有效,但它没有在按钮中显示任何内容

4

2 回答 2

1

看起来您需要将BCM_SETSPLITINFO消息发送到新创建的按钮,并带有指向BUTTON_SPLITINFO结构的指针。那应该填补缺少的东西。

一些伪代码:

BUTTON_SPLITINFO MyInfo;
MyInfo.mask = BCSIF_STYLE | BCSIF_GLYPH;
MyInfo.uSplitStyle = BCSS_STRETCH;
MyInfo.himlGlyph = [A Glyph from an Image List]
Button_SetSplitInfo(edit, &MyInfo); // Send the BCM_SETSPLITINFO message to the control.

您仍然必须提供要显示的图像列表和字形。

于 2012-11-28T23:52:06.527 回答
0

您必须让编译器在 VC++ 中使用 Common Controls 6.0 版(我认为最好在项目的一开始,在 .h 文件中:)

#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

我真的不知道如何在 GCC 等其他编译器上执行此操作,但是在 .exe 文件旁边放置一个具有相同信息的 .manifest 文件也可以解决问题。

于 2019-01-12T09:10:31.427 回答