Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-01-2006, 19:36   #1
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
[API windows] Formattazione del testo e handle font

Quale api occorre utilizzare per formattare del testo, per renderlo italic o in grassetto per esempio?
Mentre per impostare l'handle di un font dandogli come parametro la locazione del font stesso?


Grazie
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 09:45   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Quale api occorre utilizzare per formattare del testo, per renderlo italic o in grassetto per esempio?
Mentre per impostare l'handle di un font dandogli come parametro la locazione del font stesso?
Ciao, se sei tu che devi scrivere direttamente il testo su un HDC, le funzioni da usare sono:

- CreateFont/CreateFontIndirect per creare un handle HFONT.
- SelectObject per selezionare un HFONT in un HDC.
- TextOut/ExtTextOut/TabbedTextOut/DrawText/DrawTextEx per disegnare il testo sul HDC.

Poi naturalmente ci sono tutta una serie di altre funzioni per ottenere informazioni sui font e sulla loro metriche.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 12:54   #3
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Di solito io faccio così:
Codice:
//Un tuo font
HFONT tuoFont = ...;
//oppure, il font di default delle finestre
HFONT tuoFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);

//Troviamo le caratteristiche di questo font
LOGFONT lf;
GetObject(tuoFont, sizeof(LOGFONT), &lf);

//Trasformiamo le caratteristiche del font attuale:
//italic e underlined
lf.lfItalic = TRUE;
lf.lfUnderline = TRUE;

//Creiamo il font vero e proprio
HFONT newFont = CreateFontIndirect(&lf);
Così hai tutte le caratteristiche del font che stai usando attualmente + corsivo e sottilineato.

Quote:
Originariamente inviato da 17Qwerty17
Mentre per impostare l'handle di un font dandogli come parametro la locazione del font stesso?
Spiegati meglio, non ho capito na mazz

Ultima modifica di kk3z : 23-01-2006 alle 12:57.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 13:02   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Mentre per impostare l'handle di un font dandogli come parametro la locazione del font stesso?
Forse intendi dire come ottenere un handle di font partendo dal nome di un file true-type (o altro tipo) come ad esempio "C:\Documenti\tahoma.ttf"???
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 13:21   #5
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
Forse intendi dire come ottenere un handle di font partendo dal nome di un file true-type (o altro tipo) come ad esempio "C:\Documenti\tahoma.ttf"???
esatto
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 16:29   #6
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Un'altra domanda; ma il messaggio WM_LBUTTONDBLCLK viene inviato dal sistema al doppio click o è un messaggio che deve essere inviato dal nostro codice per simularlo?
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:16   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Un'altra domanda; ma il messaggio WM_LBUTTONDBLCLK viene inviato dal sistema al doppio click o è un messaggio che deve essere inviato dal nostro codice per simularlo?
Sì, viene inviato dal sistema.

C'è da tenere presente inoltre che:
- Solo le finestre che hanno lo stile (della classe) CS_DBLCLKS ricevono il WM_LBUTTONDBLCLK.
- La sequenze di invio dei messaggi è: 1) WM_LBUTTONDOWN, 2) WM_LBUTTONUP, 3) WM_LBUTTONDBLCLK e 4) WM_LBUTTONUP
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:21   #8
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
Sì, viene inviato dal sistema.

C'è da tenere presente inoltre che:
- Solo le finestre che hanno lo stile (della classe) CS_DBLCLKS ricevono il WM_LBUTTONDBLCLK.
- La sequenze di invio dei messaggi è: 1) WM_LBUTTONDOWN, 2) WM_LBUTTONUP, 3) WM_LBUTTONDBLCLK e 4) WM_LBUTTONUP
Grazie, perchè cercando un po' in giro trovavo diverse interpretazioni.
Cmq possibile che se invio questo messaggio ad un'elemento (ad esempio uno STATIC con lo stile SS_NOTIFY), viene generata una simulazione della pressione?
Perchè successivamente mi arriva la notifica di doppio click

Non ho poi ben capito a che servono le macro che si possono inserire nel wParam del messaggio WM_LBUTTONDBLCLK
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:28   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
esatto
Non c'è una funzione, tra le API Win32, per ottenere direttamente un handle di font partendo da un nome di file di font true-type (o simile).
Tutte le funzioni che hanno a che fare con un handle di font, presuppongono che il font sia già installato/registrato nel sistema.

Esistono però le funzioni:
- AddFontResource/RemoveFontResource
e
- AddFontResourceEx/RemoveFontResourceEx (da Win2000 in poi)
per installare/rimuovere un font.

Se hai bisogno di fare cose "particolari" con i font, puoi usare librerie esterne come la libreria FreeType (www.freetype.org).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:31   #10
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
Non c'è una funzione, tra le API Win32, per ottenere direttamente un handle di font partendo da un nome di file di font true-type (o simile).
Tutte le funzioni che hanno a che fare con un handle di font, presuppongono che il font sia già installato/registrato nel sistema.

Esistono però le funzioni:
- AddFontResource/RemoveFontResource
e
- AddFontResourceEx/RemoveFontResourceEx (da Win2000 in poi)
per installare/rimuovere un font.

Se hai bisogno di fare cose "particolari" con i font, puoi usare librerie esterne come la libreria FreeType (www.freetype.org).

Grazie, mi serviva soprattutto per sfizio (potrebbe tornarmi utile)
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:39   #11
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Grazie, perchè cercando un po' in giro trovavo diverse interpretazioni.
Cmq possibile che se invio questo messaggio ad un'elemento (ad esempio uno STATIC con lo stile SS_NOTIFY), viene generata una simulazione della pressione?
Perchè successivamente mi arriva la notifica di doppio click
Secondo la documentazione su MSDN, per lo stile SS_NOTIFY dice:
"Sends the parent window STN_CLICKED, STN_DBLCLK, STN_DISABLE, and STN_ENABLE notification messages when the user clicks or double-clicks the control".
Quindi il parente del controllo static riceve la notifica STN_DBLCLK (attraverso WM_COMMAND) se qualcuno fa doppio click sul controllo static.
Se vuoi inviare tu di proposito il WM_LBUTTONDBLCLK al controllo, dovrebbe funzionare (non ho mai provato comunque ).

Quote:
Originariamente inviato da 17Qwerty71
Non ho poi ben capito a che servono le macro che si possono inserire nel wParam del messaggio WM_LBUTTONDBLCLK
Il wParam per WM_LBUTTONDBLCLK è una semplice combinazione di flag come: MK_CONTROL, MK_LBUTTON, MK_MBUTTON, ecc...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:42   #12
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
Secondo la documentazione su MSDN, per lo stile SS_NOTIFY dice:
"Sends the parent window STN_CLICKED, STN_DBLCLK, STN_DISABLE, and STN_ENABLE notification messages when the user clicks or double-clicks the control".
Quindi il parente del controllo static riceve la notifica STN_DBLCLK (attraverso WM_COMMAND) se qualcuno fa doppio click sul controllo static.
Se vuoi inviare tu di proposito il WM_LBUTTONDBLCLK al controllo, dovrebbe funzionare (non ho mai provato comunque ).

Il wParam per WM_LBUTTONDBLCLK è una semplice combinazione di flag come: MK_CONTROL, MK_LBUTTON, MK_MBUTTON, ecc...
Nel senso che se mi arriva la macro MK_MBUTTON in wParam significa che mentre è stato fatto il doppio click si teneva premuto anche il tasto centrale del muose?
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 17:47   #13
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Nel senso che se mi arriva la macro MK_MBUTTON in wParam significa che mentre è stato fatto il doppio click si teneva premuto anche il tasto centrale del muose?
Esatto:
Codice:
if (wParam & MK_MBUTTON)
{
    /* Pulsante centrale mouse premuto */
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 18:31   #14
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
Esatto:
Codice:
if (wParam & MK_MBUTTON)
{
    /* Pulsante centrale mouse premuto */
}
Non ho ben chiara un'altra cosa
Ma in lParam troverò le coordinate del cursore, ma in riferimento a quale elemento?
E poi perchè se metto un'elemento static con stile SS_NOTIFY e se vado a cliccarci sopra il messaggio non viene inviato, cosa che invece succese non non aggiungo lo stile?

Ancora grazie
__________________

Ultima modifica di 17Qwerty71 : 23-01-2006 alle 18:35.
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 19:13   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Non ho ben chiara un'altra cosa
Ma in lParam troverò le coordinate del cursore, ma in riferimento a quale elemento?
lParam contiene i valori x/y "impacchettati" nella parte bassa/alta di lParam.
Puoi usare questo codice per "spacchettare" i dati:
Codice:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
La posizione che ti viene indicata è quella del punto in cui si è fatto il click/doppio click ed è relativa all'angolo in alto/sinistra dell'area client del controllo su cui si è generato l'evento.

Quote:
Originariamente inviato da 17Qwerty71
E poi perchè se metto un'elemento static con stile SS_NOTIFY e se vado a cliccarci sopra il messaggio non viene inviato, cosa che invece succese non non aggiungo lo stile?
Non ho capito bene cosa vuoi dire ... faccio poi delle prove.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 19:19   #16
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
lParam contiene i valori x/y "impacchettati" nella parte bassa/alta di lParam.
Puoi usare questo codice per "spacchettare" i dati:
Codice:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
La posizione che ti viene indicata è quella del punto in cui si è fatto il click/doppio click ed è relativa all'angolo in alto/sinistra dell'area client del controllo su cui si è generato l'evento.


Non ho capito bene cosa vuoi dire ... faccio poi delle prove.
Ma il controllo da cui prende le coordinate come fa a riconoscerlo?
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 19:26   #17
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Ma il controllo da cui prende le coordinate come fa a riconoscerlo?
Scusa ... non ho capito cosa non hai capito.
Quando fai un doppio click su un controllo, al controllo stesso viene mandato il messaggio WM_LBUTTONDBLCLK, con le coordinate del punto in lParam.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2006, 19:28   #18
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
Quote:
Originariamente inviato da andbin
Scusa ... non ho capito cosa non hai capito.
Quando fai un doppio click su un controllo, al controllo stesso viene mandato il messaggio WM_LBUTTONDBLCLK, con le coordinate del punto in lParam.
Ah, quindi lui prende come controllo per il calcolo delle coordinate quello sul quale ci clicchi?
Grazie
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2006, 09:24   #19
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 17Qwerty71
Ah, quindi lui prende come controllo per il calcolo delle coordinate quello sul quale ci clicchi?
Sì, l'ho già specificato qualche post sopra ma lo ripeto: le coordinate del punto sono relative all'angolo in alto/sinistra dell'area client del controllo.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2006, 11:29   #20
17Qwerty71
Senior Member
 
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
ok, capito
__________________
17Qwerty71 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Addio console: Just Dance Now trasforma ...
Driver Radeon Adrenalin 25.10: perch&egr...
Oltre le GPU: NVIDIA annuncia NVQLink, ...
Samsung lancia il Team Galaxy Italia per...
Magic Leap: indistinguibili dai normali ...
Aruba Cloud: trasparenza sui costi e str...
Quando il cloud si blocca e resti al fre...
Integrare per competere, la sfida digita...
Leggenda del rally e modernità: S...
La Python Software Foundation rinuncia a...
Full HD e QLED, è in offerta un TV da 32...
Honda ha rilasciato un nuovo video sul p...
Resident Evil Requiem: arriva su Switch ...
Marshall Acton III in promo su Amazon in...
2 portatili che costano poco ma vanno be...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:31.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v