c++ - 来自位图的 GDI+ C++ 纹理画笔图案

标签 c++ gdi+ brush

这几天我一直在尝试这样做。 Google 在任何地方都找不到答案。

问题是我需要将图像类型作为参数传递到 TextureBrush 中。我只有一个 HBITMAP。我研究了很多可能性,但都没有成功。

这是我的:

// change my HBITMAP to GDI+ BITMAP
Bitmap bmpTestingIt(hbmBGTiles, NULL);

Graphics g(buffer.getBufferDC());
//Image image(L"C:/Users/Owner/Pictures/testbmp.bmp"); // This works but not what I need
//Image image(bmpTestingIt); // No
//Image image((Image)bmpTestingIt); // No
Rect rct(0, 0, bmpTestingIt.GetWidth(), bmpTestingIt.GetHeight());
TextureBrush brush(&image, rct);
g.FillRectangle(&brush, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);

非常感谢任何帮助。

谢谢。

最佳答案

Bitmap inherits from Image ,我不清楚您为什么需要任何注释行。而只是使用 &bmpTestingIt 而不是 &image。只要确保你是constructing Bitmap 正确(如果它不是与设备无关的位图,则应归结为传递 HPALETTE;如果它是 DIB,则没问题)。

关于c++ - 来自位图的 GDI+ C++ 纹理画笔图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23959487/

相关文章:

iOS:使用 .png 在 View 中着色

d3.js - 范围刷 dc.js d3.js

c++ - 使用 termios 和 uint8_t 对串行通信进行符号扩展

c++ - 通过给定点的最小线数

c++ - boost::filesystem::last_write_time 在哪里?

.net - 我应该使用哪个事件来显示绘图?

c++ - 在自己的 header 中使用现有 header

c# - 为什么 EnumerateMetafile 只能在启用 Aero 的情况下使用

.net - 在用户控件中绘制简单的线条

c# - Borderbrush 到 ComboBox