位图按钮不以3D样式显示

时间:2010-06-09 09:59:01

标签: mfc

下面的代码应该在我的对话框中显示一个位图按钮。

CImage image;
hr = image.Load(_T("myimage.png")); // just change extension to load jpg
bitmap.Attach(image.Detach());
m_button.ModifyStyle(0,BS_BITMAP);
m_button.SetBitmap(bitmap);

该按钮包含图像。然而,它只是2-D而不是所需的3-D风格。我已将所有者绘制的属性设置为false,但这并未改变行为。

有人看到上述代码有什么问题吗?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。在资源设计器预览中,它已正确呈现。但是在运行之后,它被渲染为一个带有古典风格的按钮,这意味着不是3d,而是带有框架的2d。

解决这个问题对我来说。在我的对话框OnInitDialog()方法中,我刚刚添加了以下一行,它就像一个魅力:

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));

答案 1 :(得分:0)

  • m_button的类型是什么
  • 如果您正在使用CMFCButton
  • ,是否正确初始化了视觉样式管理器
  • 您是否在资源编辑器(3d)
  • 中设置了正确的按钮样式
  • 如果您在运行时创建按钮,请发布您的Create()调用