我創建了一個分層視窗并添加了一些圓角矩形、橢圓和文本來制作自定義視窗。
簡而言之,我是這樣寫的:
D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &d2dFactory);
d2dFactory->CreateHwndRenderTarget
(
RenderTargetProperties(),
HwndRenderTargetProperties(hwnd, SizeU(clientRect.right, clientRect.bottom)),
&pRenderTarget
);
...
DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(dWriteFactory), reinterpret_cast<IUnknown**>(&dWriteFactory));
dWriteFactory->CreateTextFormat
(
L"Calibri",
NULL,
DWRITE_FONT_WEIGHT_NORMAL,
DWRITE_FONT_STYLE_NORMAL,
DWRITE_FONT_STRETCH_NORMAL,
14.0f,
L"en-us",
&pTextFormat
);
...
D2D1_ROUNDED_RECT roundedRect = RoundedRect
(
RectF
(
clientRect.left,
clientRect.top,
clientRect.right,
clientRect.bottom
),
20, 20
);
...
pRenderTarget->BeginDraw();
...
pRenderTarget->FillRoundedRectangle
(
roundedRect,
SCB_DARK_BLUE
);
pRenderTarget->DrawTextA
(
title,
titleSize,
pTextFormat,
RectF(185, 2, 255, 2),
SCB_WHITE
);
pRenderTarget->FillEllipse
(
Ellipse
(
Point2F(20, 10),
6, 6
),
SCB_RED
);
我遵循了微軟的檔案。
視窗看起來像這樣
其大小(以像素為單位)為 300 x 400。文本、角和橢圓看起來像素化且不準確。
我的程式中缺少什么?提前致謝。
uj5u.com熱心網友回復:
您的程式是否設定為高 DPI 感知?請注意,我是盲人,因此無法看到您的螢屏截圖,但這是我從您的描述中想到的第一件事。
如果使用visual studio,請轉到專案-> 屬性,然后選擇清單工具-> 輸入和輸出并檢查“DPI 感知”設定。它應該是“High DPI Aware”或“Per Monitor High DPI Aware”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/386826.html
上一篇:在@body上使用linebreakinactionmailer
下一篇:C 如何設定像素顏色
