Я хочу вставить (x, y, w, h) под прямоугольник из src в dest, чтобы исходный пиксель (x, y) отображался как пиксель (0,0) dest. Мне трудно решить, какая из перегруженных газиллионов делает это. Прямо сейчас мой код выглядит так, что, очевидно, не работает:
auto_ptr<Gdiplus::Graphics> g(Gdiplus::Graphics::FromHDC(pDC->GetSafeHdc()));
g->DrawImage(png, r.top, r.bottom, r.Width(), r.Height());
g->Flush();
Это не работает, потому что (x, y) исходный пиксель отображается как (x, y) целевой пиксель, тогда как я хочу, чтобы он отображался как (0,0) целевой пиксель. Прямоугольники источника и назначения должны иметь одинаковый размер, но разные смещения вместо одного и того же смещения.
[Изменить]
Неважно, я нашел перегруженную функцию, которая мне нужна. Все повороты, которые мне нужно было добавить, - это смещение пункта назначения (x, y) впереди и UnitPixel в конце.
auto_ptr<Gdiplus::Graphics> g(Gdiplus::Graphics::FromHDC(pDC->GetSafeHdc()));
g->DrawImage(png, 0, 0, r.left, r.top, r.Width(), r.Height(), Gdiplus::UnitPixel);
g->Flush();