我正在尝试创建一个下拉菜单,但在 MSDN 上也找不到任何文档。
edit = CreateWindow("Button", "1h2f3d4", WS_BORDER |WS_CHILD | WS_VISIBLE | BS_SPLITBUTTON, 5, 30, 23, 20, hWnd, (HMENU) ID_EDIT, NULL, NULL);
它有效,但它没有在按钮中显示任何内容
看起来您需要将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.
您仍然必须提供要显示的图像列表和字形。
您必须让编译器在 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 文件也可以解决问题。