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 >>
MerciGest è il software gestionale gratuito per Windows che semplifica la gestione del magazzino: giacenze,…
Tutti i nostri software gestionali possono essere collegati a un database SQL Server, consentendo l’accesso…
MerciGest è semplice e immediato: basta scaricare e installare il programma per iniziare subito. Al…
MerciGest è un gestionale di magazzino per Windows pensato per negozi, piccole imprese e artigiani…
La Standard Template Library (STL) è una delle componenti più potenti del C++. Fornisce una…
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…