| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  22-01-2006, 19:36 | #1 | 
| 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   
				__________________     | 
|   |   | 
|  23-01-2006, 09:45 | #2 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 - 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%) | |
|   |   | 
|  23-01-2006, 12:54 | #3 | |
| Senior Member 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); Quote: 
   Ultima modifica di kk3z : 23-01-2006 alle 12:57. | |
|   |   | 
|  23-01-2006, 13:02 | #4 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  23-01-2006, 13:21 | #5 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
   
				__________________     | |
|   |   | 
|  23-01-2006, 16:29 | #6 | 
| 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?     
				__________________     | 
|   |   | 
|  23-01-2006, 17:16 | #7 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 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%) | |
|   |   | 
|  23-01-2006, 17:21 | #8 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
 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   
				__________________     | |
|   |   | 
|  23-01-2006, 17:28 | #9 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 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%) | |
|   |   | 
|  23-01-2006, 17:31 | #10 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
 Grazie, mi serviva soprattutto per sfizio (potrebbe tornarmi utile)   
				__________________     | |
|   |   | 
|  23-01-2006, 17:39 | #11 | ||
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 "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: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | ||
|   |   | 
|  23-01-2006, 17:42 | #12 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
   
				__________________     | |
|   |   | 
|  23-01-2006, 17:47 | #13 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Codice: if (wParam & MK_MBUTTON)
{
    /* Pulsante centrale mouse premuto */
}
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  23-01-2006, 18:31 | #14 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
   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. | |
|   |   | 
|  23-01-2006, 19:13 | #15 | ||
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 Puoi usare questo codice per "spacchettare" i dati: Codice: xPos = GET_X_LPARAM(lParam); yPos = GET_Y_LPARAM(lParam); Quote: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | ||
|   |   | 
|  23-01-2006, 19:19 | #16 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
 
				__________________     | |
|   |   | 
|  23-01-2006, 19:26 | #17 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
   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%) | |
|   |   | 
|  23-01-2006, 19:28 | #18 | |
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | Quote: 
 Grazie   
				__________________     | |
|   |   | 
|  24-01-2006, 09:24 | #19 | |
| Senior Member Iscritto dal: Nov 2005 Città: TO 
					Messaggi: 5206
				 | Quote: 
 
				__________________ Andrea, SCJP 5 (91%) - SCWCD 5 (94%) | |
|   |   | 
|  24-01-2006, 11:29 | #20 | 
| Senior Member Iscritto dal: Jul 2005 Città: San Marino 
					Messaggi: 309
				 | 
		ok, capito     
				__________________     | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 07:31.









 
		 
		 
		 
		







 
  
 



 
                        
                        










