Автор | Сообщение |
|
| |
Пост N: 19
Зарегистрирован: 04.11.09
|
|
Отправлено: 09.10.16 10:09. Заголовок: длина строки в pixel как определтить
Приветствую, всех Понадобилась длина строки в пикселях. Взял функцию из интернета. Но что-то не так - на любой фонт возвращает одинаковую длину. Подскажите, пожалуйста, в чем ошибка или иное решение. Пробою в xHarbour с gtWVW. HB_FUNC( S_LENSTRPXL ) { HFONT hOldFont; HDC hdc; HWND hWnd; SIZE sz = { 0 }; hWnd = FindWindow(NULL,NULL); hdc = GetDC(hWnd ); hOldFont = ( HFONT ) SelectObject( hdc, ( HFONT ) hb_parnl( 2 ) ); GetTextExtentPoint32( hdc, hb_parcx( 1 ), strlen( hb_parcx( 1 ) ), &sz ); SelectObject( hdc, hOldFont ); ReleaseDC( hWnd, hdc ); hb_retni( sz.cx ); }
|
|
|
Ответов - 2
[только новые]
|
|
|
| moderator
|
Пост N: 1034
Зарегистрирован: 06.07.06
|
|
Отправлено: 10.10.16 11:41. Заголовок: Ну а результат похож..
Ну а результат похож на реальный ? Функция, вроде, правильная - в HwGUI таким же образом это реализовано. Проверьте, точно ли передается handle шрифта вторым параметром.
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 04.11.09
|
|
Отправлено: 11.10.16 09:02. Заголовок: Александр, спасибо, ..
Александр, спасибо, что откликнулись. Действительно, было что-то с hFont=CreateFont(), заменил Font=CreateFontIndirect(). Размер стал меняться.
|
|
|
|