我正在使用第三方库来绘制图形。该库需要HDC (GDI)。但是我的应用程序使用的是GDI+。
Q1:这样做安全吗?
void f(Gdiplus::Graphics& graphics)
{
HDC dc = graphics.GetHDC();
// Call 3rd party lib functions using dc
// ...
graphics.ReleaseHDC(dc);
}Q2:库的一些函数需要边界矩形结构(WinAPI)。如果我使用毫米作为页面单位,如何计算该矩形的坐标?
graphics.SetPageUnit(UnitMillimeter);发布于 2014-06-10 18:34:49
Q1:可以,但如果第三方库无法处理您的坐标==> Q2,则可能需要更改坐标系
Q2:this SO Question为此提供了一些指针(但方向正好相反),您需要将mapping mode设置为MM_HIMETRIC,将GDI+坐标转换为0.01 mm的整数,然后使用LPtoDP获取像素值。
https://stackoverflow.com/questions/24138123
复制相似问题