Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改CMFCMenuButton的样式类似于我的对话框中的常规按钮_Mfc_Popupmenubutton - Fatal编程技术网

更改CMFCMenuButton的样式类似于我的对话框中的常规按钮

更改CMFCMenuButton的样式类似于我的对话框中的常规按钮,mfc,popupmenubutton,Mfc,Popupmenubutton,我的对话框上有一个控件: CONTROL "Lookup",IDC_MFCMENUBUTTON_LOOKUP_PUBLISHER, "MfcMenuButton",WS_TABSTOP,106,254,45,14 我这样初始化它: m_menuLookupPublisher.LoadMenu(IDR_MENU_LOOKUP_PUBLISHER); m_btnLookupPublisher.m

我的对话框上有一个控件:

    CONTROL         "Lookup",IDC_MFCMENUBUTTON_LOOKUP_PUBLISHER,
                    "MfcMenuButton",WS_TABSTOP,106,254,45,14
我这样初始化它:

m_menuLookupPublisher.LoadMenu(IDR_MENU_LOOKUP_PUBLISHER);
m_btnLookupPublisher.m_hMenu = m_menuLookupPublisher.GetSubMenu(0)->GetSafeHmenu();
它工作得很好:


更新 我添加了一些额外的代码(基于提供给我的答案):

这改善了按钮的外观和感觉,但仍然不是100%相同。下面是它现在没有焦点时的样子:

只是边框的显示方式不正确
EnableWindowTheming
默认情况下为
TRUE
,因此我不确定在这里还需要做什么

恼人的是,在VS IDE中,它看起来很好:

我的问题涉及菜单按钮的视觉显示。边框看起来与其他按钮不同。不需要做太多的工作就能让它看起来一样吗


更新 我无意中发现了这一点,它现在为我指明了正确的方向。如果我添加此代码:

m_btnLookupPublisher.ModifyStyle(BS_OWNERDRAW, 0, 0);
然后是正确绘制边界等,但使按钮的其他方面无效,因此这不是一个可行的解决方案。但剩下的答案是我所需要的:


CMFCVisualManager::SetDefaultManager(运行时_类(CMFCVisualManager类))

你是说3D造型吗?然后您需要指定“展开”样式
按钮展开样式


谢谢你的建议。我没有试过。如果我使用
平面
,则按钮按设计没有矩形,除非它有焦点。如果我使用
半平面
,它在视觉上仍然不完全像按钮。我猜它们只是呈现方式不同而已。@andrewruckle如果你想让它们匹配,请将其他两个按钮也设置为
CMfcButton
(否
菜单
)否。我的应用程序中有许多对话框。只有两个用户使用这些菜单按钮。我并不是为了这个化妆品问题而把它们都改了。请看最新的问题。
m_btnLookupPublisher.ModifyStyle(BS_OWNERDRAW, 0, 0);