gpt4 book ai didi

c++ - 在 MFC 窗口中使用 PNG 作为背景图像

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:36 25 4
gpt4 key购买 nike

我用 MFC 开发了一个小程序,可以显示形状并移动它们。

我希望能够选择可用作主 MFC 窗口背景的 PNG 图像。

目前在以下代码中将背景设置为黑色:

...
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
myCDC->FillRect(r,&brush);
...

我找到了可以让我上传位图的类 - 例如 [CStatic][1] - 但没有找到适合 PNG 的东西。

有谁知道怎么做,或者你做过类似的事情吗?

最佳答案

可以尝试使用Gdiplus的Image类 http://msdn.microsoft.com/en-us/library/windows/desktop/ms534462(v=vs.85).aspx

因为png文件可以有alpha属性,而位图没有,所以我总是使用图像来加载 png 文件。

wchar_t szFile[256] = {0};   //  png image file path
Image* m_pImage;
m_pImage = new Image(szFile, FALSE); // Load png file


// drawing png image
CPaintDC dc(this); // 用于绘制的设备上下文
Graphics graphics(dc.m_hDC);
if(m_pImage != NULL && (m_pImage->GetLastStatus() == Gdiplus::Status::Ok))
{
graphics.DrawImage(m_pImage, 0, 0, m_pImage->GetWidth(), m_pImage->GetHeight());
}

// need delete it, if you donot need it
if (m_pImage != NULL)
{
delete m_pImage;
m_pImage = NULL;
}

关于c++ - 在 MFC 窗口中使用 PNG 作为背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20761852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com