当我单击下拉菜单时,MFC 组合框控件未显示完整的项目列表

我在 MSVS 2008 中编写了一个应用程序,它有一个 ComboBox 控件,我通过如下代码对其进行初始化:

I'm coding an app in MSVS 2008, which has a ComboBox control which I initialize thru the code as below:

static char*                    OptionString[4] = {"Opt1",
                                                   "Opt2",
                                                   "Opt3",
                                                   "Opt4"};


BOOL CMyAppDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

 // Set the icon for this dialog.  The framework does this automatically
 //  when the application's main window is not a dialog
 SetIcon(m_hIcon, TRUE);   // Set big icon
 SetIcon(m_hIcon, FALSE);  // Set small icon

    // TODO: Add extra initialization here

    m_Option.AddString(OptionString[0]);
    m_Option.AddString(OptionString[1]);
    m_Option.AddString(OptionString[2]);
    m_Option.AddString(OptionString[3]);
    m_Option.SetCurSel(0);

    return TRUE;  // return TRUE  unless you set the focus to a control
}

在上面的代码中,m_Option是ComboBox Control的Control变量.

In the above code, m_Option is the Control variable for the ComboBox Control.

现在,当我构建应用程序并单击向下箭头时,下拉框仅显示第一个选项(因为我已通过代码选择了该选项).但是,如果我按下键盘上的向下箭头键,它会按照我插入的顺序循环遍历选项,但它永远不会在框中显示超过 1 个选项.因此,如果用户想要选择选项 3,他必须循环选择选项 1 和 2 !虽然一旦我使用键盘选择了任何选项,相应的事件处理程序就会被触发,但我对这种行为感到很恼火,这是可以理解的.

Now, when I build the app and click the down-arrow, the drop-down box shows the first option ONLY(since I've selected that thru my code). But, if i press down-arrow key on keyboard, it cycles thru the options in the order I've inserted, but never does it show more than 1 option in the box. So, In case an user wants to select option3, he has to cycle through options 1 and 2 !! Though once I select any option using the keyboard, the appropriate event handlers are fired, I'm miffed by this behaviour , as is understandable.

我也列出了组合框控件的属性 - 只有为 true 的属性(其余设置为 false):

I'm listing the properties of the combo-box control as well - only the properties that are true(rest are set to false):

  1. 类型 - 下拉列表
  2. 垂直滚动条
  3. 可见的制表符

这已经困扰了我好几个星期了.谁能赐教?

This has bugged me for weeks now. Can anyone pls enlighten me ?

推荐答案

在对话框布局设计器中,在设计对话框时,单击组合框上的向下箭头".然后,您可以向下拖动组合框轮廓的底部以增加其高度.

In the dialog layout designer, while designing the dialog, click the "down arrow" on the combobox. You can then drag down on the bottom of the combobox's outline to increase its height.

相关文章