Newsgroup: it.comp.lang.visual-basic
Titolo: [?] - Common Dialog font

Ho una funzione che mi apre la common dialog dei font di windows.
Public Function DialogFont(Hwnd As Long, c As Control) As Boolean
    Dim LF As LOGFONT, FS As FONTSTRUC
    Dim lLogFontAddress As Long, lMemHandle As Long
    If c.Font.Bold Then LF.lfWeight = FW_BOLD
    If c.Font.Italic = True Then LF.lfItalic = 1
    If c.Font.Underline = True Then LF.lfUnderline = 1
    FS.lStructSize = Len(FS)
    lMemHandle = GlobalAlloc(GHND, Len(LF))
    If lMemHandle = 0 Then
        DialogFont = False
        Exit Function
   End If
    lLogFontAddress = GlobalLock(lMemHandle)
    If lLogFontAddress = 0 Then
        DialogFont = False
        Exit Function
    End If
 
    CopyMemory ByVal lLogFontAddress, LF, Len(LF)
    FS.lpLogFont = lLogFontAddress
    FS.iPointSize = c.Font.Size * 10
    FS.Flags = CF_SCREENFONTS Or CF_EFFECTS
    FS.lpTemplateName = 
c.Font.Name
 
    If ChooseFont(FS) = 1 Then
        CopyMemory LF, ByVal lLogFontAddress, Len(LF)
        If LF.lfWeight >= FW_BOLD Then
            c.Font.Bold = True
        Else
            c.Font.Bold = False
        End If
        If LF.lfItalic = 1 Then
            c.Font.Italic = True
        Else
            c.Font.Italic = False
        End If
        If LF.lfUnderline = 1 Then
            c.Font.Underline = True
        Else
           c.Font.Underline = False
        End If
 
c.Font.Name
 = ByteToString(LF.lfFaceName())
        c.Font.Size = CLng(FS.iPointSize / 10)
        DialogFont = True
    Else
        DialogFont = False
    End If
End Function
COME FACCIO A PASSARGLI IL MIO FONT DI DEFAULT? CI HO PROVATO IN TUTTI I 
MODI.....
GRAZIE
-- 
Vincenzo
VB6+SP5 Windows 2000 SP4
MSDE 8

 TUTTI I MODI.....
Usando il common dialog di VB...?
Ambiente? (sistema operativo e versione di VB)

 
LA VERSIONE E' SEMPRE SCRITTA IN CODA AL MESSAGGIO, USO LE API POICHè PER 
TUTTE LE COMMON DIALOG HO LE MIE CLASSI CHE FUNZIONANO BENE...


 LA VERSIONE E' SEMPRE SCRITTA IN CODA AL MESSAGGIO
Ok
USO LE API POICHè PER TUTTE LE COMMON DIALOG HO LE MIE CLASSI CHE FUNZIONANO
BENE...
Vedo...

 
complimenti per la professionalità...


 complimenti per la professionalità...
Ma che c'entra? Io non sono professionale, a meno che tu non mi paghi.
Sono pratico.
Usi una API, per tua scelta, che ti devo dire? Mi verrebbe, ma mi
trattengo...

 
Vero, su quello hai ragione... ma credo che se ti pagassi non ci sarebbe 
comunque risposta. Buon lavoro...


[Vincenzo Morgante = circa_vm...@SPAMhotmail.com in
Xns94C59389B26FDvm...@130.133.1.4
] ha scritto:

Va bene, semmai ci incontrassimo, ti chiederei il doppio.
Tu sei fuori, anzi, violetto.

 TUTTI I MODI.....
Dovrebbe essere sufficiente fare come hai fatto qui sopra per le altre
caratteristiche, ovvero copiare il nome (
c.Font.Name
) nel membro lfFaceName
di LOGFONT (LF.lfFaceName) che, immagino, sia definito anche nella tua
struttura come array di byte.
Quindi, prendendo ad esempio il codice della classe che c'e' sul Sito
Comune:
    Dim FaceName() As Byte
    [...]
    'questa va prima di 'FS.lStructSize = Len(FS)'
    If IlNomeDelTuoFont <> "" Then
        FaceName = StrConv(IlNomeDelTuoFont, vbFromUnicode)
        ReDim Preserve FaceName(LF_FACESIZE - 1)
        CopyMemory LF.lfFaceName(0), FaceName(0), LF_FACESIZE
    End If
    [...]
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 trattengo...
... mi sembra proprio il 'giusto' spirito di questo newsg...
complimenti.

[Cristina = circa...@Pika.it in C1fdc.30432$
hc5.1...@news3.tin.it
] ha
scritto:

Guarda, credo proprio che a me si possa imputare di tutto, meno che non
comprenda/condivida lo spirito del NG. Il riferimento al "pagare" voleva
essere una sottolineatura al fatto che, qui, bado più alla praticità che
alla professionalità. Fare con un'API quel che si può fare un un
CommonDialog per me è poco pratico. Studiare un'API quando se ne può fare a
meno, credo che competa a chi ha deciso di usarla...

 wrote in
news:c544m6$2nfo1m$
1...@ID-174464.news.uni-berlin.de
: 

...il ng serve ad imparare cose nuove credo... per la common dialog che 
usavo in vb3 la guida utente (allora msdn lo regalavano) era chiara...
Non è un capriccio, ma tutte le CD del software (e le usa tutte) sono 
gestite con API. Era solo una curiosità il fatto di poter passare anche 
il nome del carattere predefinito dato che dimensione, stile, colore etc 
sono correttamente letti e proposti...
Saluti ancora.


 
Ciao luca sei stato prezioso. Il codice non funzionava ma mi ha dato dei 
spunti.
ho trovato alla fine il mio problema. Vi posto il link che ho trovato
saluti
http://www.mvps.org/access/api/api0061.htm
