wcm_zjucs 2018-11-06 06:00 采纳率: 0%
浏览 341

MFC dropdowntoolbar 显示问题,朋友们帮看一下,感谢!

老师的项目需要一个下拉的toolbar,类型是cmfcdropdowntoolbar。
第三个按钮那种的
点击后会有一个下拉的toolbar
鼠标左键松开按钮后就变成了一个黑框

这个问题困扰我很久了,实在不知道该怎么解决,如果有大侠知道,还望指点迷津。
(很奇怪的是在台式机上运行的程序按钮一切正常,选择toolbar中的按钮切换按钮显示都正常,在笔记本上就变成了上面这种情况)

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 07:45
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能是因为你的应用程序在不同的平台(Windows和Mac)上的实现方式不同。如果你的应用程序使用了MFC库,并且想要在2D和3D模式之间切换,那么你需要在不同的平台上使用不同的函数来创建和显示工具栏。

    对于Windows平台,你可以使用CWnd::GetDlgItem函数来获取一个控件ID,并通过这个ID来访问一个特定的窗口对象。然后,你可以在那个窗口对象中调用ShowWindow函数来改变它的可见性。

    例如:

    HMENU hMenu = (HMENU)wnd.GetDlgItem(IDC_TOOLBAR);
    if (hMenu != NULL)
    {
        ShowWindow(hMenu, SW_HIDE); // 设置为隐藏状态
    }
    else
    {
        MessageBox(NULL, L"Failed to get the tool bar", L"Error", MB_OK | MB_ICONERROR);
    }
    

    这将使所有的工具栏按钮变为不可见。如果你想让它们重新可见,你可以再次设置它们为可见。

    if (hMenu != NULL)
    {
        ShowWindow(hMenu, SW_SHOW); // 设置为可见状态
    }
    

    对于Mac OS X平台,你可以使用NSControl类来创建和管理控件。但是请注意,MFC库不支持直接在Mac上使用,因此你可能需要使用其他的方法来处理这些控件。

    如果你仍然无法解决问题,请提供更多的信息,比如你的应用程序的具体实现以及你在哪个平台遇到的问题。这样我才能更准确地帮助你解决问题。

    评论

报告相同问题?