前提条件:应用程序是MFC C++,它使用BCGControlBar库进行UI呈现。
主题:我们可以添加后台视图和命令到BCG丝带后台主面板。就像这样:
auto pBackstagePanel = m_wndRibbonBar.AddBackstageCategory(_T("File"), IDB_FILESMALL);
// views
pBackstagePanel->AddView(ID_BACKSTAGE_INFO, _T("Info"), new CBCGPRibbonBackstageViewItemForm (IDD_FORM_INFO, RUNTIME_CLASS(CBackStagePageInfo)));
pBackstagePanel->AddView(ID_BACKSTAGE_RECENT, _T("Recent"), new CBCGPRibbonBackstageViewItemForm (IDD_FORM_RECENTFILES, RUNTIME_CLASS(CBackStagePageRecentFiles)));
// commands
pBackstagePanel->AddCommand (ID_FILE_SAVE, _T("Save"), 2);
pBackstagePanel->AddCommand (ID_OPTIONS, _T("Options"), 3);
pBackstagePanel->AddCommand (ID_APP_EXIT, _T("Exit"), 3);但是BCG后台主面板有UI缺陷:视图的带状按钮(方法AddView())和命令(方法AddCommand())呈现的宽度不同!因此,用于命令的带状按钮的悬停或聚焦状态比6px左右的视图呈现得更窄。
即使在使用BCG带(例如DrawCli)的BCG示例中,也可以看到这个bug:

问:你知道如何修复它,并有相同宽度的所有元素在后台主板?
发布于 2022-09-24 18:25:03
BCGSoft不会修复任何问题。我已经使用他们的解放多年,他们的48小时的“帮助”是无用的。基本上,他们总是回答说报告的问题是MFC,而不是他们的软件。它是如此糟糕,我正在重写我的整个框架为直接MFC。这消除了GUI库的间接层。不过,并不是说MS在响应GUI MFC错误方面要好得多。
https://stackoverflow.com/questions/73837766
复制相似问题