c++ - 使用 GDI 以图像为中心的黑色背景

标签 c++ winapi bitmap gdi

我在窗口中央显示图像。但是我希望窗口的所有其他区域都是黑色的。我如何实现这一目标? 我正在使用 StretchBlt 使图像居中。请指教

RECT clientRect,rect;
    HDC hDC = GetDC(hwnd);
    HDC hMemDC = CreateCompatibleDC(hDC);
    ::SelectObject(hMemDC, bmp);
    GetClientRect(hwnd, &clientRect);
StretchBlt(hDC, clientRect.left, clientRect.top, newwidth, newheight, hMemDC, 0, 0,bmpdata.bmWidth, bmpdata.bmHeight,SRCCOPY);

最佳答案

使用ExcludeClipRect剪掉图像区域,然后使用 FillRect 填充它周围的背景.

关于c++ - 使用 GDI 以图像为中心的黑色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27309962/

相关文章:

c++ - OSX clang++:用于cpp文件中显式实例化的模板的架构x86_64的 undefined symbol

windows - 仅在现代 Windows NT 系统上,我可以在运行时确定句柄是引用套接字还是对象句柄吗?

c++ - 运行应用程序时出现运行时错误,原因是 Qlable

c++ - 如何在 QT 中的自定义视频小部件 t 上绘制矩形?

java - 我还需要做什么来设置 libhdfs(对于 C++)?

winapi - MONITOR 是否需要发布?如果是这样,如何?

c# - C#读取其他进程当前目录

android - 如何在不拉伸(stretch)的情况下调整图像大小?

位图中的 C# 内存泄漏

delphi - 如何更改 32 位 TBitmap 中特定颜色的 alpha 值?