这几天我一直在尝试这样做。 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/