Я пытаюсь создать метод, который дает мне ширину строки в пикселях. Мой код до сих пор:Winapi получить ширину строки в пикселях
inline void getTextWidth(HWND hwnd char* text) {
SIZE textSize;
GetTextExtentPoint32(GetDC(hwnd), text, strlen(text), &textSize);
return ?;
}
Я знаю, что я должен использовать LPtoDP
(MSDN), но хочет точек в качестве параметров и не размер, что GetTextExtentPoint32 возвращается.
Как это сделать?
Это довольно неясно. Ваше название вопроса говорит о пикселях, ваше тело говорит о точках. Вы пытаетесь получить функцию, которая возвращает void, чтобы что-то вернуть. Вы говорите о параметрах, когда вы представляете собой возвращаемое значение. Небрежный, сделай это лучше. И объясните, почему вы считаете, что вам нужно изменить режим отображения в контексте устройства, созданного с нуля. –
И не забудьте также исправить утечку «HDC». 'HDC', возвращаемый' GetDC() ', должен быть освобожден с помощью' ReleaseDC() ', когда вы закончите использовать его. –
Возможный дубликат [Как найти ширину строки (в пикселях) в WIN32] (http://stackoverflow.com/questions/1126730/how-to-find-the-width-of-a-string-in -pixels-in-win32) –