C++ 为什么在CToolBar中使用高深度颜色的禁用按钮只是灰色框?

C++ 为什么在CToolBar中使用高深度颜色的禁用按钮只是灰色框?,c++,visual-c++,mfc,C++,Visual C++,Mfc,我遵循了这个问题的步骤: 代码是有效的。但我还有一个问题——任何禁用的按钮都只是灰色框。 一旦它们被启用,它们就完全是应该的 我怀疑CToolBar不知道如何对提供的图像进行灰显-有人能帮忙吗 提前感谢。通常需要两件事才能获得高颜色按钮和正确的灰色图像: 始终在VisualStudio之外编辑工具栏的.bmp文件 使用对CMFCToolBar::AddToolbar ForImageCollection(IDR_MAINFRAME)的调用将图像添加到MFC;在InitInstance()实现中

我遵循了这个问题的步骤:

代码是有效的。但我还有一个问题——任何禁用的按钮都只是灰色框。 一旦它们被启用,它们就完全是应该的

我怀疑CToolBar不知道如何对提供的图像进行灰显-有人能帮忙吗


提前感谢。

通常需要两件事才能获得高颜色按钮和正确的灰色图像:

  • 始终在VisualStudio之外编辑工具栏的.bmp文件
  • 使用对CMFCToolBar::AddToolbar ForImageCollection(IDR_MAINFRAME)的调用将图像添加到MFC;在InitInstance()实现中

  • 不幸的是,这也意味着您必须直接在应用程序的.rc资源文件中编辑工具栏定义。

    通常需要两件事才能获得高颜色按钮和正确的灰色图像:

  • 始终在VisualStudio之外编辑工具栏的.bmp文件
  • 使用对CMFCToolBar::AddToolbar ForImageCollection(IDR_MAINFRAME)的调用将图像添加到MFC;在InitInstance()实现中

  • 不幸的是,这也意味着您必须直接在应用程序的.rc资源文件中编辑工具栏定义。

    CToolBar实际上最多接受三个图像列表,每个图像列表用于处理按钮的正常、禁用和高亮显示状态

    要完成我需要的-只是正常和禁用按钮状态。我需要两张照片。一个带有普通彩色图标,另一个带有灰色图标

    将图像作为位图资源添加到项目中-修改并记下ID

    创建两个ImageList并进行相应设置:(m_wndToolBar是我项目中的工具栏)

    要设置工具栏的高亮显示版本,请执行以下操作:

    CImageList imgListHighlighted;
    /* Load your CImageList */
    m_wndToolBar.GetToolBarCtrl().SetHotImageList(&imgListHighlighted);
    

    CToolBar实际上最多接受三个图像列表,每个图像列表用于处理按钮的正常、禁用和高亮显示状态

    要完成我需要的-只是正常和禁用按钮状态。我需要两张照片。一个带有普通彩色图标,另一个带有灰色图标

    将图像作为位图资源添加到项目中-修改并记下ID

    创建两个ImageList并进行相应设置:(m_wndToolBar是我项目中的工具栏)

    要设置工具栏的高亮显示版本,请执行以下操作:

    CImageList imgListHighlighted;
    /* Load your CImageList */
    m_wndToolBar.GetToolBarCtrl().SetHotImageList(&imgListHighlighted);