【问题标题】:MFC ComboBox: Not Displaying Text BoxMFC ComboBox:不显示文本框
【发布时间】:2013-12-05 00:13:04
【问题描述】:

因此,在我的大型机功能中,我创建了一个工具栏,并且在此工具栏上我想包含 2 个标准组合框:(文本框、下拉按钮、下拉菜单)。我使用 CComboBox 类。我的工具栏也是使用 CBCGPro 创建的。

第一个组合框已创建并且看起来不错。代码如下:

CRect rect;

m_wndToolBarSelectCN.SetButtonInfo(0, IDM_SHOW_SELECT_CN_TOOLBAR, TBBS_SEPARATOR, 175);  
m_wndToolBarSelectCN.GetItemRect(0, &rect);
rect.bottom = rect.top + 200;

sg_cbToolsbarClasses.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWN, rect,
                            &m_wndToolBarSelectCN, IDS_TOOLBAR_SELECT_CB_CLASS);

m_wndToolBarSelectCN 是我在大型机函数中创建的工具栏,sg_cbToolsbarClasses 是我的 CcomboBox 对象。

我的第二个 ComboBox 直接在第一个 ComboBox 的右侧,有下拉菜单和下拉按钮,但没有文本框。它的所有功能也都有效。代码如下:

m_wndToolBarSelectCN.SetButtonInfo(1, IDM_SHOW_SELECT_CN_TOOLBAR, TBBS_DROPDOWN, 500);  
m_wndToolBarSelectCN.GetItemRect(1, &rect2);
rect2.bottom = rect2.top + 200;
sg_cbToolsbarNodes.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWN, rect2,
                           &m_wndToolBarSelectCN, IDS_TOOLBAR_SELECT_CB_NODE); 

这是否与代码有关,我在这些函数中做错了吗?还是与资源文件/位图有关?

【问题讨论】:

  • 猜测:m_wndToolBarSelectCN.GetItemRect(3, &rect2); 返回一个无效的矩形。您可以调试并检查返回的内容吗?顺便说一句,为什么在第一种情况下你使用索引 0,而在第二种情况下你使用索引 3?
  • 你确定你的工具栏有这3个元素吗?
  • 0 和 3 是我的资源文件中按钮的索引。最初有两个按钮 0 和 1 以及两个组合框 2 和 3。出于这个问题的目的,我省略了两个有效的按钮,忘记更改第二个组合框的索引。我现在就编辑它
  • 对于 GetItemRect,它在提供的索引处返回一个边界矩形。我没有给它一个大小,如果我没记错的话,它应该默认填充工具栏上为其提供的空间

标签: c++ combobox mfc toolbar


【解决方案1】:

解决了。我只需要在组合框之间使用垫片。第一个显示很好,因为它的左边没有任何东西。第二个的文本框被第一个覆盖(重叠)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多