将GDI +与GDI混合

时间:2014-06-10 10:01:16

标签: c++ gdi+ gdi

我正在使用第三方库来绘制图表。该库需要HDC(GDI)。但我的应用程序是使用GDI +。

Q1:这样做是否安全?

void f(Gdiplus::Graphics& graphics)
{
    HDC dc = graphics.GetHDC();

    // Call 3rd party lib functions using dc
    // ...

    graphics.ReleaseHDC(dc);
}

Q2:某些lib的函数需要一个边界RECT结构(WinAPI)。如果我使用毫米作为页面单位,如何计算该矩形的坐标?

graphics.SetPageUnit(UnitMillimeter);

1 个答案:

答案 0 :(得分:2)

Q1:是的,但如果第三方库无法处理您的坐标,您可能需要更改坐标系==> Q2

Q2:this SO Question有一些指针(虽然是相反的方向),你需要将mapping mode设置为MM_HIMETRIC,将你的GDI +坐标转换为0.01 mm的整数和使用LPtoDP获取像素值。