【问题标题】:how to call SetExtendedUI on CMFCToolBarFontComboBox如何在 CMFCToolBar Font ComboBox 上调用 Set Extended UI
【发布时间】:2021-10-29 05:16:10
【问题描述】:

我正在创建一个基于示例的 MFC 应用程序:https://github.com/microsoft/VCSamples/tree/master/VC2010Samples/MFC/Visual%20C%2B%2B%202008%20Feature%20Pack/WordPad 现在我想将工具栏中的字体名称下拉列表从DOWN键更改为F4的方式。看来我需要获取组合框并在上面调用SetExtenedUI(FALSE),但我不知道在哪里做。

【问题讨论】:

    标签: winapi mfc


    【解决方案1】:

    要更改 CComboBox 上的扩展 UI 标志,请调用其 CComboBox::SetExtendedUI 成员。当您拥有CMFCToolBarFontComboBox 时,您需要先进入其组合框。由于它继承自CMFCToolBarComboBoxButton,因此您可以使用其CMFCToolBarComboBoxButton::GetComboBox 成员来获取CComboBox*

    CMFCToolBarFontComboBox* pFontButton = ...;
    CComboBox* pComboBox = pFontButton->GetComboBox();
    pComboBox->SetExtendedUI(FALSE);
    

    【讨论】:

    • 是的,我知道这些,我的问题是我应该把这些代码放在哪里,我试图把它们放在 void CWordPadView::OnFontname(),但它不起作用,SetExtendedUI(FALSE) 返回 CB_OKAY 但F4 还是不行。
    • github.com/microsoft/VCSamples/tree/master/VC2010Samples/MFC/…,我只需要让 F4 在字体名称组合框上工作
    • 我写了一个应用程序来调用目标组合框上的 SendMessage(m_hWnd, CB_SETEXTENDEDUI, bExtended, 0L),如果目标是标准的 CComboBox,它可以工作。但是 CMFCToolBarFontComboBox 不起作用,似乎 CMFCToolBarFontComboBox 不接受这个标志。
    • minimal reproducible example 必须是最小的,并且是问题的一部分。
    【解决方案2】:

    最后我切换到 CComboBoxEx 效果很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多