【发布时间】:2019-02-26 22:08:24
【问题描述】:
我正在努力按照标题所说的去做。
下面是应该返回带有旋转图标的 HDC 的代码。 我不确定为什么它没有返回任何东西。当我尝试绘制返回的 HDC 时,什么都没有出现,而且我测试它不是我的绘图中的错误。
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Gdiplus::Bitmap SrcBitmap(L"H:\\Company\\iOG\\blue_arrow.tif", FALSE);
Gdiplus::Graphics DstGraphics(&SrcBitmap);
Gdiplus::REAL angle = lAngle;
DstGraphics.ResetTransform();
DstGraphics.RotateTransform(angle);
DstGraphics.TranslateTransform(SrcBitmap.GetWidth() / 2.0f, SrcBitmap.GetHeight() / 2.0f, Gdiplus::MatrixOrderAppend);
DstGraphics.DrawImage(&SrcBitmap, -((INT)SrcBitmap.GetWidth() / 2), -((INT)SrcBitmap.GetHeight() / 2), SrcBitmap.GetWidth(), SrcBitmap.GetHeight());
HBITMAP hBmp;
SrcBitmap.GetHBITMAP(Gdiplus::Color::Transparent, &hBmp);
HDC dcIcon = CreateCompatibleDC(NULL);
SelectObject(dcIcon, hBmp);
return dcIcon;
【问题讨论】:
-
你好像忘记检查错误了。
-
您无法将位图转换为
HDC。请用简单的语言解释你要做什么。 -
@BarmakShemirani - 你在哪里查看转换位图(
HBITMAP你的意思是?)到HDC?存在正确的 dc 选择位图SelectObject(hIcon, hBmp);(奇怪的是 dc 名为hIcon) -
您好,感谢您的回复。我有一个图标(蓝色箭头) 我需要旋转图标并将其显示在游戏地图上。我有 .gif、.tif、.bmp、.jpg 中的图标
-
您可能需要使用不同的源位图和目标位图。
标签: c++ winapi bitmap drawing gdi+