gpt4 book ai didi

c++ - WIN32 API C程序:尽管填充了CB_ADDSTRING,但组合框的列表为空或未下拉

转载 作者:行者123 更新时间:2023-12-03 07:23:29 32 4
gpt4 key购买 nike

我正在使用Visual C++ 2008使用WIN32 API对话框(使用宽字符)来执行C程序。到目前为止,每个控件都可以使用,但是我现在通过从工具箱拖放到资源对话框中添加了一个组合框。我已经完成了必要的编码(请参阅下文),但是当我单击“组合框”时,单击组合框时该列表似乎没有下拉或为空。但是,最后一项(“ITEM 2”)显示在组合框中。我将代码放在WM_INITDIALOG中而不是WM_CREATE中,因为我的应用程序仅包含一个对话框。这是我的代码的一部分:

LRESULT CALLBACK BasicScanProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

HWND hWndComboBox;

switch(uMsg)
{

case WM_INITDIALOG:

hWndComboBox = GetDlgItem(hwnd,IDC_COMBO1); //gets handle
SendMessage(hWndComboBox, CB_ADDSTRING, 0, TEXT("ITEM 1")); //adds items
SendMessage(hWndComboBox, CB_ADDSTRING, 0, TEXT("ITEM 2"));
SendMessage (hWndComboBox, CB_SETCURSEL, (WPARAM) 1, (LPARAM) 0); //display first item



我已经尝试了以下与上面相同的结果:
SendMessage (hWndComboBox, (UINT) CB_ADDSTRING, (WPARAM) 0, (LPARAM) "ITEM 1");
SendMessage (hWndComboBox, (UINT) CB_ADDSTRING, (WPARAM) 0, (LPARAM) "ITEM 2");


当我单击控件时,如何在组合框的下拉列表中显示两项(ITEM 1和ITEM 2)?

最佳答案

enter image description here是,此问题已解决。问题不在于编码中的任何地方,而在于用鼠标或箭头键手动调整大小。在VISUAL C++的资源编辑器中组合框控件的高度也要考虑其下拉列表区域在下降时的高度(即单击)加上组合框在正常非下拉模式下的正常高度。因此,将“组合框”控件放在“资源编辑器”上时,其大小(高度)应大于“组合框”控件的默认高度,因为它的下拉列表区域尚未扩展。

更改组合框控件的高度有些棘手。当您第一次单击组合框以选择它时,您的鼠标光标不会在第一次单击时变为调整大小的向上/向下箭头。您将不得不再次单击组合框右端的向下箭头(是,第二次)。然后,您将只能获得调整大小的向上/向下箭头。非常感谢@JonathanPotter提供的信息!

关于c++ - WIN32 API C程序:尽管填充了CB_ADDSTRING,但组合框的列表为空或未下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60518654/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com