WinAPI组合框不显示下拉列表

WinAPI组合框不显示下拉列表,winapi,combobox,listbox,Winapi,Combobox,Listbox,当我按下一个组合框控件的箭头按钮时,它怎么没有显示下拉列表?准确地说,它试图显示一些内容,但看起来屏幕上没有足够的空间,因此只显示一条细线,就像是一个包含零项的列表框。当我使用向上和向下箭头时,我可以遍历组合框中的可用选项。这张图片显示了组合框下方的黑线,它是对我试图显示下拉列表的回应。 可能是列表框尝试装入的组合框周围有一个边框吗?如何增加这样的矩形?谢谢你的回复 明白了!确实有一个边框,我必须使用GetClientRect和SetWindowPos函数来增加它。明白了!确实有一个边界矩形,我

当我按下一个组合框控件的箭头按钮时,它怎么没有显示下拉列表?准确地说,它试图显示一些内容,但看起来屏幕上没有足够的空间,因此只显示一条细线,就像是一个包含零项的列表框。当我使用向上和向下箭头时,我可以遍历组合框中的可用选项。这张图片显示了组合框下方的黑线,它是对我试图显示下拉列表的回应。
可能是列表框尝试装入的组合框周围有一个边框吗?如何增加这样的矩形?谢谢你的回复

明白了!确实有一个边框,我必须使用GetClientRect和SetWindowPos函数来增加它。

明白了!确实有一个边界矩形,我必须使用GetClientRect和SetWindowPos函数来增加它。

我对combobox也有同样的问题。对我来说,解决办法很简单。你只需要把按钮的高度调高一点。当我做按钮高度25时,只有一条黑色的细线。但当我把高度定为200时,我所有的列表都显示在按钮上

        HWND hwndChannelList = CreateWindow(
        L"COMBOBOX",  // Predefined class; Unicode assumed 
        L"",      // Button text 
        WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST | BS_DEFSPLITBUTTON | CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL,  // Styles WS_VSCROLL | BS_DEFSPLITBUTTON WS_DISABLED | 
        10,         // x position 
        80,         // y position 
        100,        // Button width
        200,        // Button height
        hWnd,     // Parent window
        (HMENU)IDC_CHANNEL_COUT_BUTTON,       //menu.
        (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
        NULL);   

我对combobox也有同样的问题。对我来说,解决办法很简单。你只需要把按钮的高度调高一点。当我做按钮高度25时,只有一条黑色的细线。但当我把高度定为200时,我所有的列表都显示在按钮上

        HWND hwndChannelList = CreateWindow(
        L"COMBOBOX",  // Predefined class; Unicode assumed 
        L"",      // Button text 
        WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST | BS_DEFSPLITBUTTON | CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL,  // Styles WS_VSCROLL | BS_DEFSPLITBUTTON WS_DISABLED | 
        10,         // x position 
        80,         // y position 
        100,        // Button width
        200,        // Button height
        hWnd,     // Parent window
        (HMENU)IDC_CHANNEL_COUT_BUTTON,       //menu.
        (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
        NULL);   

组合框的剪裁区域可以通过资源脚本中的height参数设置。如果组合框是动态创建的,那么可以通过API进行设置,比如。您好,谢谢您提供的信息。我目前正在使用VS Express,它缺少资源编辑器,而传统VS6 Pro的资源编辑器缺少高度参数修改。无论如何,在迁移到更新版本的VS之前,我会记住您的提示:-您可以手动编辑.rc文件。有关组合框定义的文档,请参见。注意:在Visual Studio 6中,您可以先单击下拉按钮,在资源编辑器中更改组合框的高度。这将显示一个包含整个控件的框架,并允许您调整其大小。非常感谢!隐藏在箭头按钮下,这看起来像复活节彩蛋,而不是开发人员的预期行为!:-组合框的剪裁区域可以通过资源脚本中的height参数设置。如果组合框是动态创建的,那么可以通过API进行设置,比如。您好,谢谢您提供的信息。我目前正在使用VS Express,它缺少资源编辑器,而传统VS6 Pro的资源编辑器缺少高度参数修改。无论如何,在迁移到更新版本的VS之前,我会记住您的提示:-您可以手动编辑.rc文件。有关组合框定义的文档,请参见。注意:在Visual Studio 6中,您可以先单击下拉按钮,在资源编辑器中更改组合框的高度。这将显示一个包含整个控件的框架,并允许您调整其大小。非常感谢!隐藏在箭头按钮下,这看起来像复活节彩蛋,而不是开发人员的预期行为!:-奖励阅读:奖励阅读: