Kezdőoldal » Számítástechnika » Programozás » Hogyan tudom autóittal megálla...

Hogyan tudom autóittal megállapítani, hogy hány pixel egy karakter hossza?

Figyelt kérdés
2017. jún. 22. 13:03
 1/9 anonim ***** válasza:
27%

Nem autoitezem ezért nemtudom.

És ne akard hogy keressek erre valamit a doksiban mert ez nem kérdés volna hanem kérés.

2017. jún. 22. 13:29
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
Egyébként ha van ott Font típus akkor talán annak lennie kell Height és Width tagoknak amik gondolom a hosszt és a magasságot adják vissza pixelben. Vagy measurestring metódusra is rákereshetsz hátha van valami ilyesmi autoitben.
2017. jún. 22. 13:39
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:

Ez programozási nyelvtől független kérdés.

Függ a használt karakterkészlettől, nem fix szélességű (szóval nem monospace) betűtípusnál az aktuális betűtől (egy i betű keskenyebb mint egy m), a betű magasságától, stílusától (egy félkövér betű vastagabb), stb.., És akkor szavak esetén ott a betűk közötti térköz, több soros szövegnél a sorköz...

2017. jún. 22. 13:52
Hasznos számodra ez a válasz?
 4/9 sharkxxx ***** válasza:

A _API_GetTextExtentPoint32 parancs kiszámolja, hogy milyen széles és milyen magas lesz a megjelent szöveg.


Itt van rá egy példa:

[link]

2017. jún. 22. 15:15
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
köszi mindenkinek, még az elsőnek is.
2017. jún. 22. 15:49
 6/9 anonim ***** válasza:

Egyébként nem elég az egyes betűk szélességeit lekérdezni és összeadni ahhoz, hogy megtudd egy szöveg hosszát, mert van egy un. kerning fogalom is, ami (pongyolán fogalmazva) azt mondja meg, hogy az egyes betűpárok között mennyi a távolság.

Pl az "VA" szélessége lehet hogy kisebb, mint a "V" és az "A" szélességének összege, mert az "A" becsúszhat (egyes betűtipusoknál) a "V" alá. Szóval az a biztos, ha egyben kéred le egy szöveg szélességét.

2017. jún. 22. 20:15
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:

Köszi! Nem is gondoltam volna hogy már ennyire profi a helyzet, hogy két betű között a távolság nulla vagy aká negatív is lehet.

Azonban van egy gond:

nem találja a

A3LWinAPI.au3

file-t.

Mi lehet ennek az oka? A winyót átfésültem, nincs rajta más alköyvtárban se. Honnan lehet ezt letölteni?

2017. jún. 22. 20:17
 8/9 A kérdező kommentje:
A beállítások menüpontban be lehet állítani, hogy kiírja automatikusan a neved s akkor nem kell neked manuálisan beírnod a hozzászólásban.
2017. jún. 22. 20:41
 9/9 A kérdező kommentje:

érdekes, a _API_GetTextExtentPoint32 autoit -ra rákeresve kiadja a _WinAPI_GetTextExtentPoint32 parancsiot a azzal már műküdik:



#include <GUIConstantsEx.au3>

#include <MsgBoxConstants.au3>

#include <WinAPI.au3>

#include <WindowsConstants.au3>


Example()


Func Example()

Local $hGUI = GUICreate("String height & width.")

GUISetState(@SW_SHOW, $hGUI)


Local $sText = "This is some text" ; The text we want to find the height & width of.

Local $aStringDimension = GetStringDimensions($hGUI, $sText) ; Retrieve a 1 dimensional array with $aArray[0] = width & $aArray[1] = height.

MsgBox($MB_SYSTEMMODAL, "String Height and Width", 'The height and width of the string "' & $sText & '" is:' & @CRLF & _

"Width: " & $aStringDimension[0] & @CRLF & _

"Height: " & $aStringDimension[1] & @CRLF)

Do

Until GUIGetMsg() = $GUI_EVENT_CLOSE

EndFunc ;==>Example


Func GetStringDimensions($hWnd, $sText)

Local $hDC = _WinAPI_GetDC($hWnd) ; Get the device context handle of the current window.

Local $hFont = _SendMessage($hWnd, $WM_GETFONT) ; Retrieve the font with which the control is currently drawing its text.

Local $hSelectObject = _WinAPI_SelectObject($hDC, $hFont) ; Select the object of the context device.

Local $tSIZE = _WinAPI_GetTextExtentPoint32($hDC, $sText) ; Retrieve the height & width of a string.


_WinAPI_SelectObject($hDC, $hSelectObject)

_WinAPI_ReleaseDC($hWnd, $hDC) ; Release the device context.

Local $aReturn[2] = [DllStructGetData($tSIZE, 1), DllStructGetData($tSIZE, 2)] ; Set an array with the width & height of the string.

Return $aReturn

EndFunc ;==>GetStringDimensions

2017. jún. 22. 20:45

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!