Funzione LoadIconMetric (commctrl.h)

Carica una risorsa icona specificata con una metrica di sistema specificata dal client.

Sintassi

HRESULT LoadIconMetric(
  [in]  HINSTANCE hinst,
  [in]  PCWSTR    pszName,
  [in]  int       lims,
  [out] HICON     *phico
);

Parametri

[in] hinst

Tipo: HINSTANCE

Handle per il modulo di un file DLL o eseguibile (.exe) che contiene l'icona da caricare. Per altre informazioni, vedere GetModuleHandle.

Per caricare un'icona di sistema predefinita o un file icona autonoma, impostare questo parametro su NULL.

[in] pszName

Tipo: PCWSTR

Puntatore a un buffer Unicode con terminazione Null che contiene informazioni sulla posizione sull'icona da caricare.

Se hinst è diverso da NULL, pszName specifica la risorsa icona in base al nome o all'ordinale. Questo ordinale deve essere creato in un pacchetto utilizzando la macro MAKEINTRESOURCE .

Se hinst è NULL, pszName specifica l'identificatore (a partire dal prefisso IDI_) di un'icona di sistema predefinita da caricare.

[in] lims

Tipo: int

Metrica desiderata. Uno dei valori seguenti:

Valore Significato
LIM_SMALL
Corrisponde a SM_CXSMICON, la larghezza in pixel consigliata di un'icona piccola.
LIM_LARGE
Corrisponde a SM_CXICON, la larghezza in pixel predefinita di un'icona.

[out] phico

Tipo: HICON*

Quando termina, questa funzione contiene un puntatore all'handle dell'icona caricata.

Valore restituito

Tipo: HRESULT

Restituisce S_OK in caso di esito positivo; in caso contrario, viene restituito un errore, incluso il valore seguente.

Codice restituito Descrizione
E_INVALIDARG
Il contenuto del buffer a cui punta pszName non rientra nelle interpretazioni previste.

Commenti

LoadIconMetric è simile a LoadIcon, ma con la possibilità di specificare la metrica dell'icona. Viene usato al posto di LoadIcon quando l'applicazione chiamante vuole garantire un'icona di alta qualità. Ciò è particolarmente utile in situazioni di punti alti per pollice (dpi).

Le icone vengono estratte o create come indicato di seguito.

  1. Se viene trovata una corrispondenza esatta delle dimensioni nella risorsa, viene usata tale icona.
  2. Se non è possibile trovare una corrispondenza esatta delle dimensioni e è disponibile un'icona più grande, viene creata una nuova icona ridimensionando la versione più grande fino alle dimensioni desiderate.
  3. Se non è possibile trovare una corrispondenza esatta delle dimensioni e non è disponibile alcuna icona più grande, viene creata una nuova icona ridimensionando un'icona più piccola fino alle dimensioni desiderate.
Le chiamate comparative sono visualizzate qui per LoadIconMetric e LoadIcon.
NOTIFYICONDATA  nidIconData  = {0};
nidIconData.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));

// Or...

HRESULT hr = LoadIconMetric(hInstance, MAKEINTRESOURCE(IDI_ICON), LIM_SMALL, &nidIconData.hIcon);

L'applicazione è responsabile della chiamata di DestroyIcon sull'icona recuperata.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione commctrl.h
Libreria Comctl32.lib
DLL Comctl32.dll