Newsgroup: it.comp.lang.visual-basic
Titolo: API CreateFont? (Scrivere testo inclinato)

Ciao a tutti
in un applicazione ho una PictureBox nella quale vado ad inserire un 
immagine ricavata da un altro oggetto.
fin qui tutto bene.
Dopo questo dovrei scrivere nella PictureBox del testo inclinato.
guardo un po in giro è saltato fuori che c'è un'Api che crea font:
Private Declare Function CreateFont Lib "gdi32.dll" Alias "CreateFontA" 
(ByVal nHeight As Long, ByVal nWidth As Long, ByVal nEscapement As Long, 
ByVal nOrientation As Long, ByVal fnWeight As Long, ByVal fdwItalic As 
Long, ByVal fdwUnderline As Long, ByVal fdwStrikeOut As Long, ByVal 
fdwCharSet As Long, ByVal fdwOutputPrecision As Long, ByVal 
fdwClipPrecision As Long, ByVal fdwQuality As Long, ByVal 
fdwPitchAndFamily As Long, ByVal lpszFace As String) As Long
nella quale è possibile specificare l'inclinazione(il pararametro 
nEscapement) pero non riesco ad utilizzarla come vorrei nel senso che 
riesco a creare un font inclinato su una picturebox vuota anche due, 
tre, ecc.. riesco a farlo anche quando una picturebox con un immagine 
caricata di default ma quando la carico da codice e vado a modificarla 
poprio non riesco a crearla anzi se gli passo delle coordinate di 
default la crea se gli passo la x e la y dell'evento Picture1_MouseDown
non me la crea?
questo è il codice:
Private Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As 
Long, ByVal hObject As Long) As Long
Private Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal 
hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, 
ByVal nCount As Long) As Long
Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As 
Long) As Long
nell'evento Picture1_MouseDown
Dim VCreateFont As Long
Dim VFont As Long
Dim Val As Long
Dim xx As Long
Dim yy As Long
xx = CLng(x)
yy = CLng(y)
VCreateFont = CreateFont(20, 6, 300, 0, 400, 0, 0, 0, ARABIC_CHARSET, 8, 
0, 2, 16, "Arial")
VFont = SelectObject(Picture1.hdc, VCreateFont)
Val  = TextOut(Picture1.hdc, 0 + xx, 30 + yy, "CreateFont", 10)
Val  = SelectObject(Picture1.hdc, VFont)
Val  = DeleteObject(VFont)
Picture1.Refresh
qualche suggerimento sull'Api CreateFont? 
qualche altro suggerimento su come potrei scrivere con inclinazione su 
una picturebox senza creare aloni grigi sull'immagine sottostante? 

Se non sbaglio nell'help di allapi c'é un esempio che fa al caso tuo sotto
TextOut...
                    Ciao
                                                    Allanon
-- 
- SPAMKILLER
 L'indirizzo delle risposte é 
itlangv...@michele.sytes.net
 LASCIATE il NOSPAM fa parte dell'indirizzo :-)
  Per superare le impostazioni di protezione antispam scrivete
  nel testo del messaggio la scritta "SPAMKILLER"
Scusate il disturbo, ma non posso più di pubblicità

 
ti ringrazio ma non risolve il mio problema che credo riguardi 
effetivamente il 
TextOut(Picture1.hdc, 0 + xx, 30 + yy, "CreateFont", 10).
ma non so ancora il perchč.
il progetto che mi hai fatto scaricare funziona anche se gli passo le 
coordinate prese dal picutre1_mausedown nel mio progetto non fa 
niente.
Aiuto sto impazzendo!!!!!!!!!!!!!!!!!!

 Aiuto sto impazzendo!!!!!!!!!!!!!!!!!!
stai lavorando in pixel?
Alessandro
-- 
Morfeus®
Free Joint
 :PII


  Usa la CreateFontIndirect()
Type LOGFONT
        lfHeight As Long
        lfWidth As Long
        lfEscapement As Long
        lfOrientation As Long
        lfWeight As Long
        lfItalic As Byte
        lfUnderline As Byte
        lfStrikeOut As Byte
        lfCharSet As Byte
        lfOutPrecision As Byte
        lfClipPrecision As Byte
        lfQuality As Byte
        lfPitchAndFamily As Byte
        lfFaceName(LF_FACESIZE) As Byte
End Type
Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA"
(lpLogFont As LOGFONT) As Long
Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject
As Long) As Long
Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long,
ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As
Long) As Long
picture1.Cls
lf.lfHeight = 12
lf.lfEscapement = Val(Text1) * 10
lf.lfWidth = 12
hnFont = CreateFontIndirect(lf)
hoFont = SelectObject(Picture1.hdc, hnFont)
retValue = TextOut(Picture1.hdc, 150, 300, Text2, Len(Text2))
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 Ciao
 
  Manca questo
  Public Const LF_FACESIZE = 32


>  :PII
;)


 >
  Per la cronaca, a me la CreateFont() funziona!


 no....
  Le funzioni dell'API di windows lavorano SOLO IN PIXEL!


 Twip o Pixel?
grande hai vinto almeno un aperitivo.
quando sei a milano fai uno squillo.
 
scalemode era twip 
che cogl....e che sono. 
grazie mille
ho finito di sclerare per oggi
ciao
dak

 
ora lo so anche io 
avevo lo scalemode in twip.
grazie mille