我正在使用第三方库来绘制图表。该库需要 HDC (GDI)。但我的应用程序使用的是 GDI+。
问题1:这样做安全吗?
void f(Gdiplus::Graphics& graphics)
{
HDC dc = graphics.GetHDC();
// Call 3rd party lib functions using dc
// ...
graphics.ReleaseHDC(dc);
}
问题 2:库的某些函数需要边界 RECT 结构 (WinAPI)。如果我使用毫米作为页面单位,如何计算该矩形的坐标?
graphics.SetPageUnit(UnitMillimeter);
最佳答案
Q1:可以,但是如果第三方库无法处理您的坐标,您可能需要更改坐标系==> Q2
第二季度:this SO Question有一些针对此的指针(尽管是相反的方向),您需要设置 mapping mode到 MM_HIMETRIC,将 GDI+ 坐标转换为 0.01 毫米的整数并使用 LPtoDP获取像素值。
关于c++ - 将 GDI+ 与 GDI 混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24138123/