歌笑爱学习 2022-04-05 12:19 采纳率: 0%
浏览 36

CCombobox如何实现下拉框长度自适应

本人在改良一个字体控件,此控件继承CCombox,需要实现的效果是,当在编辑框输入时:
1.下拉框会自动列出与输入内容局部匹配的条目
2.下拉框长度也要随显示的条目数自适应,不可出现空白条目。

目前已实现第1点,第2点不知道该如何实现,想寻求一下帮助

已实现效果如下图:

img

第1点的实现思路是:使用CCombox的消息映射宏ON_CONTROL_REFLECT_EX(CBN_EDITUPDATE, OnCbnEditUpdate),具体实现为:

BOOL CFontNameComboBoxEx::OnCbnEditchange()
{
    CString strFontName;
    CString strText;
    GetWindowText(strText);
 
    ResetContent();
     //此处省略,获取匹配到的条目,并添加至下拉列表中
 
    ShowDropDown(TRUE);
    SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)));
    SetWindowText(strText);
    SetEditSel(strText.GetLength(), -1);
    return FALSE;
}
  • 写回答

1条回答 默认 最新

  • 关注

    更新下拉框选项前,删除所有下拉选项,再更新符合条件的选项。

    评论

报告相同问题?

问题事件

  • 修改了问题 4月5日
  • 创建了问题 4月5日