Размытый GDI + текст (DrawString) - PullRequest
0 голосов
/ 31 мая 2018

Вывод DrawString по какой-то причине становится очень размытым.Я искал ту же резкость, что и меню Windows, см. Прикрепленное изображение в качестве ссылки.

enter image description here Текст верхнего окна в генерируется следующим кодом:

Gdiplus::Graphics graphics(m_DeviceContextHandle);

Gdiplus::FontFamily nameFontFamily(L"Segoe UI");
Gdiplus::Font       font(&nameFontFamily, 9);
Gdiplus::SolidBrush solidbrush(Gdiplus::Color(255, 0, 0, 0));

graphics.SetCompositingQuality(Gdiplus::CompositingQuality::CompositingQualityAssumeLinear);
graphics.SetSmoothingMode(Gdiplus::SmoothingMode::SmoothingModeHighQuality);
graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetMode::PixelOffsetModeHighQuality);
graphics.SetTextRenderingHint(Gdiplus::TextRenderingHint::TextRenderingHintClearTypeGridFit);
graphics.DrawString(L"File   Edit   Format   View   Help", -1, &font, Gdiplus::PointF(10, 10), &solidbrush);

Есть идеи, как я могу повысить резкость текста?

Редактировать:

Вот результат, когда я рисую в растровом изображении вместо окна.Первый текст из растрового вывода, последний текст, когда я рисую в окне.enter image description here

Код:

// Draw to bitmap.
Gdiplus::Bitmap b(100, 100);
Gdiplus::Graphics *g = Gdiplus::Graphics::FromImage(&b);

// Draw text.
// ...


// Save bitmap.
CLSID pngClsid;
CLSIDFromString(L"{557cf406-1a04-11d3-9a73-0000f81ef32e}", &pngClsid);

b.Save(L"C:\\my_path_here\\out.png", &pngClsid, NULL);

Есть идеи?Неправильные настройки моего окна?

...