Funzione GetDialogBaseUnits (winuser.h)
Recupera le unità di base del dialogo del sistema, ovvero la larghezza media e l'altezza dei caratteri nel tipo di carattere di sistema. Per le finestre di dialogo che utilizzano il tipo di carattere di sistema, è possibile utilizzare questi valori per eseguire la conversione tra unità modello di dialogo, come specificato nei modelli di finestra di dialogo e nei pixel. Per le finestre di dialogo che non utilizzano il tipo di carattere di sistema, la conversione da unità modello di dialogo a pixel dipende dal tipo di carattere utilizzato dalla finestra di dialogo.
Per entrambi i tipi di finestra di dialogo, è più semplice usare la funzione MapDialogRect per eseguire la conversione. MapDialogRect prende in considerazione il tipo di carattere e converte correttamente un rettangolo da unità modello di dialogo in pixel.
Sintassi
long GetDialogBaseUnits();
Valore restituito
Tipo: LONG
La funzione restituisce le unità di base del dialogo. La parola in ordine basso del valore restituito contiene l'unità di base della finestra di dialogo orizzontale e la parola di ordine elevato contiene l'unità di base della finestra di dialogo verticale.
Commenti
L'unità di base orizzontale restituita da GetDialogBaseUnits è uguale alla larghezza media, in pixel, dei caratteri nel tipo di carattere di sistema; l'unità di base verticale è uguale all'altezza, in pixel, del tipo di carattere.
Il tipo di carattere di sistema viene utilizzato solo se il modello di finestra di dialogo non riesce a specificare un tipo di carattere. La maggior parte dei modelli di finestra di dialogo specifica un tipo di carattere; di conseguenza, questa funzione non è utile per la maggior parte delle finestre di dialogo.
Per una finestra di dialogo che non utilizza il tipo di carattere di sistema, le unità di base sono la larghezza media e l'altezza, in pixel, dei caratteri nel tipo di carattere della finestra di dialogo. È possibile utilizzare le funzioni GetTextMetrics e GetTextExtentPoint32 per calcolare questi valori per un tipo di carattere selezionato. Tuttavia, usando la funzione MapDialogRect , è possibile evitare errori che potrebbero verificarsi se i calcoli differiscono da quelli eseguiti dal sistema.
Ogni unità di base orizzontale è uguale a 4 unità modello di dialogo orizzontale; ogni unità di base verticale è uguale a 8 unità modello di dialogo verticale. Pertanto, per convertire le unità modello di finestra di dialogo in pixel, usare le formule seguenti:
pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);
Analogamente, per eseguire la conversione da pixel a unità modello di dialogo, usare le formule seguenti:
templateunitX = MulDiv(pixelX, 4, baseunitX);
templateunitY = MulDiv(pixelY, 8, baseunitY);
Esempio
Per un esempio, vedere "Creazione di una barra degli strumenti casella combinata" in Uso di caselle combinate.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-dialogbox-l1-1-2 (introdotto in Windows 10, versione 10.0.10240) |
Vedi anche
Informazioni concettuali
Riferimento