Prima di creare un progetto e quindi una finestra a livello di codice C/C++ dobbiamo spiegare la struttura base di un’applicazione Windows. Ogni finestra in Windows per essere univocamente riconoscibile presenta una valore che si chiama HANDLE, che è il valore di ritorno della funzione per creare le finestre CreateWindow. Un’applicazione Windows può essere suddivisa in due componenti principali: la funzione WinMain e la funzione per la gestione delle finestre. Microsoft Windows vuole che la funzione principale e di inizio di un’applicazione si chiami WinMain, così come main in applicazioni console. La funzione per la gestione delle finestre invece deve essere di tipo “call-back” che viene registrata e richiamata ogni qualvolta deve essere effettuata un’operazione su una finestra.
Vediamo ora alcuni tipi e strutture che occorre gestire per creare un’applicazione Windows.
La funzione WinMain()
Tutte le applicazioni Windows devono contenere una funzione WinMain che si occupa di:
Ecco la definizione della funzione WinMain:
int PASCAL WinMain(HINSTANCE hInst, HISTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow)
La chiamata di una funzione PASCAL implica una maggiore efficenza nell’inserire i dati della funzione stessa nello stack, ma da Windows 95 in poi non ha avuto più nessun beneficio. Il valore di ritorno della funzione come si vede è un intero che poi sarà il numero di uscita dal processo principale. Il primo parametro hInst è di tipo HINSTANCE, cioè l’istanza dell’applicazione, mentre hPreInst di solito è nullo a meno che non esista un’istanza precedente. Vedremo cosa sia l’istanza di un’applicazione quando tratteremo di processi e thread. La stringa lpszCmdLine contiene i parametri passati all’applicazione dalla riga di comando, come del resto succedeva in main della console. L’ultimo argomento è nCmdShow che è il modo in cui deve essere mostrata la finestra, ad esempio SW_SHOWNORMAL per mostrarla normale o SW_SHOWMINNOACTIVE per mostrarla ridotta ad icona e non attiva.
Nella prossima lezione continueremo a parlare di programmazione visuale con la registrazione delle classi di finestra.
<< Lezione Precedente – Inizio Corso – Lezione Successiva >>
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→