Gestione delle Risorse in Visual C/C++

Le risorse in una applicazione Windows sono estremamente importanti, perché consentono di inserire icone, immagini bitmap, menu, puntatori e barre degli strumenti in maniera molto semplice. In questa lezione vedremo come inserire una icona alla nostra applicazione sviluppata nella precedente lezione, un cursore personalizzato ed un menu per chiudere il programma o cambiare aspetto del grafico disegnato nella client area della finestra. Per inserire una nostra icona alla finestra principale dobbiamo inizialmente inserire un file di risorse al nostro progetto e poi inserire la nostra icona personalizzata nel progetto stesso. In particolare ricordiamo che ogni risorsa presenta un numero univoco che verrà inserito nel file resource.h e che pertanto va inserito con un include nel file della finestra. A questo punto basta solo caricare la risorsa in memoria ed inserirla nella classe della nostra finestra.

...
wc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON_MAIN));
...

In questo caso ho chiamato la mia risorsa IDI_ICON_MAIN e da numero l’ho trasformata in stringa con MAKEINTRESOURCE, proprio perché la funzione LoadIcon vuole l’istanza dell’applicazione da cui prelevare la risorsa ed il nome della stessa in formato stringa. Allo stesso modo possiamo disegnare un cursore ed inserirlo come standard nella classe della finestra. Così come abbiamo visto per le icone ed i cursori possiamo anche inserire un menu. In questo caso verrà creata anche un’altra risorsa contenente le stringhe delle descrizioni dei comandi. Per intercettare i comandi del menu, dobbiamo gestire l’evento WM_COMMAND della finestra ed in particolare wParam, nel quale parametro risiede proprio il comando lanciato.

...
case WM_COMMAND:
switch (wParam)
{
      case ID_FILE_EXIT:
            PostQuitMessage(0);
            break;
}
break;
...

Ultima cosa da dire è che una volta validata l’area del disegno, per ridisegnare, occorre invalidarla ed aggiornare di nuovo la client area della finestra.

Ovviamente la finestra è molto semplice ed elementare, ma se vedete il codice sorgente potete imparare le nozioni basilari per creare le prime applicazioni con l’SDK di Windows.
Tutto il codice sorgente del progetto di esempio lo potete trovare nel forum dedicato alla programmazione in C/C++, mentre se volete pubblicizzare i vostri lavori potete inserire notizie nel nostro aggregatore.

<< Lezione Precedente – Inizio CorsoLezione Successiva >>

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in VC/C++. Contrassegna il permalink.