Newsgroup: it.comp.lang.visual-basic
Titolo: [?] [VB5] DrawTextEx

Forse mi sfugge qualcosa ...
Ho visto che in vari post relativi a stampe di vario genere (in particolare
per le stampe di testo in determinate aree) veniva consigliata la
DrawTextEx.
Ho provato a usarla anche io, ma funziona solo se passo l'HDC di una
pictureBox, e non va se uso come HDC quello della stampante (printer.hDC).
Ho guardato l'esempio di AllApi-Guide (quello chiamato keySpy): l'ho copiato
pari pari, ho eliminato le funzioni che "catturano" i tasti digitati e ho
sostituito me.hDC (ovvero l'hDC del form dell'esempio) con printer.hDC e non
mi stampa niente. mi ritorna correttamente un valore>0 ma non vedo nulla in
stampa.
Starň facendo qualche boiata io ma, almeno in API-Guide non č detto niente
circa l'hDC, quindi dovrebbe funzionare sia con form, picture, printer, no?
PS: ho guardato anche su MSDN, ma non c'č molto di piů che sul programma di
ALL-API
PS2: nell'esempio di ALL-API un parametro della DrawTextEx č qualcosa del
tipo
lpDrawTextParams As DRAWTEXTPARAMS
ma sta DRAWTEXTPARAMS non esiste(?). Ho visto che sono definite due costanti
(sempre nell'esempio di ALL-API)
Public Const DT_CENTER = &H1
Public Const DT_WORDBREAK = &H10
che vengono passate come parametro al posto di DRAWTEXTPARAMS
Grazie a ...
--
byZ, doGmaI
ICQ#170836495

 lpDrawTextParams As DRAWTEXTPARAMS
Questo su MSDN c'è
The DRAWTEXTPARAMS structure contains extended formatting options for the DrawTextEx <fontext_4pbs.htm> function.
typedef struct { 
    UINT cbSize; 
    int  iTabLength; 
    int  iLeftMargin; 
    int  iRightMargin; 
    UINT uiLengthDrawn; 
} DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS; 
 
Members
cbSize 
Specifies the structure size, in bytes. 
iTabLength 
Specifies the size of each tab stop, in units equal to the average character width. 
iLeftMargin 
Specifies the left margin, in units equal to the average character width. 
iRightMargin 
Specifies the right margin, in units equal to the average character width. 
uiLengthDrawn 
Receives the number of characters processed by DrawTextEx, including white-space characters. The number can be the length of the string or the index of the first line that falls below the drawing area. Note that DrawTextEx always processes the entire string if the DT_NOCLIP formatting flag is specified. 
-- 
Samuele Battarra
prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/news/

 Questo su MSDN c'è
Ho sbagliato io, ho fatto un po' di casotto ...
In realtà mi chiedevo da dove arrivano la DT_WORDBREAK e DT_CENTER. Sono
costanti definite in un modulo, ma come faccio io a sapere che DT_WORDBREAK
h a valore &H10 e l'altra &H1?
La DRAWTEXTPARAMS l'avevo visto, ma non serviva (tra l'altro nell'esempio
l'API non è definita come
DrawTextEx ...,lpDrawTextParams As DRAWTEXTPARAMS) as long
ma come
DrawTextEx ...,lpDrawTextParams As Any) as long
e poi lpDrawTextParams non viene usato
--
byZ, doGmaI
ICQ#170836495

 
Be non serve, in realtà serve per indicare ulteriori impostazioni
di formattazione. Se non hai bisogno di queste impostazioni avanzate
allora tantovale che usi DrawText anzhichè DrawTextEx, che quel
parametro in più proprio non lo vuole.


 parametro in piů proprio non lo vuole.
Grazie
--
byZ, doGmaI
ICQ#170836495