【问题标题】:MFC Background image issueMFC 背景图像问题
【发布时间】:2014-02-02 20:37:53
【问题描述】:

我在窗口中添加了背景图片,但其他图片没有出现。

背景图片与其他图片重叠

图片:

http://i.stack.imgur.com/efb2z.png

如何解决?

代码

/* ENTER */
CPngImage imagea;
imagea.Load(IDB_PNG1);

image.SetBitmap((HBITMAP)imagea.Detach());

/*  PROGRESS BAR */
CPngImage imageaa;
imageaa.Load(IDB_PNG2);

image2.SetBitmap((HBITMAP)imageaa.Detach());

/* BACKGROUND */    
CPngImage imageaaa;
imageaaa.Load(IDB_PNG3);

image3.SetBitmap((HBITMAP)imageaaa.Detach());

新问题 http://i.stack.imgur.com/wIurg.png

【问题讨论】:

  • 你会在其他所有内容之后绘制背景图像吗?否则我们需要看一些代码...
  • 我对@9​​87654324@ 不是很熟悉,但这对我来说似乎是在加载图像(?)我对你绘制imageimage2、@ 的代码更感兴趣987654327@.
  • “背景图片”是什么意思?你的意思是在视图内数据背后的背景中,还是在 MDI 子窗口后面的背景中,或者...?

标签: c++ user-interface mfc


【解决方案1】:

【讨论】:

    【解决方案2】:

    您需要使用 OnEraseBackground()。

    【讨论】:

      【解决方案3】:

      制作背景图片有两种方法: - 直接在 OnEraseBackground() 中的对话框上绘制 - 将图像放在所有其他控件的后面

      每种方法都有一些微妙的优点和缺点,但对于大多数应用程序来说,两者都应该工作。看来您使用的是第二种方法。您需要做的是确保后台控件一直位于控件堆栈的底部(z-pos - 使用 SetWindowPos() 将其发送到后台,或者只是在所有其他人之前创建它,但是您可以'不要使用对话框编辑器),还要确保你的后台控件设置了 WS_CLIPSIBLINGS。

      【讨论】:

        【解决方案4】:

        CPngImage 支持 MFC 框架基础结构,并不打算直接从您的代码中使用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-04
          • 2021-05-14
          • 1970-01-01
          • 2017-07-26
          • 2011-08-12
          • 2016-03-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多