/* ----------------------------- MAININIT.C --------------------------
* Inizializzazioni e conclusioni principali
* ---------------------------------------------------------------- */
#define STRICT
#include <Windows.h>
#include "dlg3.h"
#define TOPCLASS "Dlg" // Classe della finestra principale
// ---- Riferimenti esterni
/* ---------------------------- TopInit -----------------------------
* Creazione e inizializzazione della finestra principale
* ---------------------------------------------------------------- */
static BOOL TopInit (LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc; // Struttura classe finestra
HWND hWnd; // Finestra creata
BOOL bOk = FALSE; // Valore di ritorno
char szTitolo [50]; // Titolo finestra
long FAR PASCAL TopWndProc (HWND, unsigned, WORD, DWORD);
do
{
hAccel = NULL; // Nessun acceleratore
// ---- Memorizza la classe della finestra
if (!hPrevInst) // Solo se 1ma istanza
{
wc.hCursor = LoadCursor (NULL, IDC_ARROW);
wc.hIcon = LoadIcon (hInst,
MAKEINTRESOURCE(TOPICON));
wc.lpszMenuName = MAKEINTRESOURCE (TOPMENU);
wc.lpszClassName = TOPCLASS;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.hInstance = hInst;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)TopWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
bOk = RegisterClass (&wc);
if (!bOk)
break;
}
// ---- Creazione della finestra
LoadString (hInst, TOPTITOLO, szTitolo, sizeof szTitolo);
hWnd = CreateWindow (TOPCLASS, szTitolo, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, LoadMenu (hInst,
MAKEINTRESOURCE (TOPMENU)), hInst, NULL);
if (!hWnd)
break;
// ---- Mostra la finestra
ShowWindow (hWnd, nCmdShow);
UpdateWindow (hWnd);
bOk = TRUE; // La creazione Š avvenuta correttamente
}
while (0);
return bOk;
}
/* ---------------------------- BersaglioInit ---------------------------
* Creazione ed inizializzazione del controllo BERSAGLIO
* ---------------------------------------------------------------- */
static VOID BersaglioInit ()
{
WNDCLASS wc; // Struttura classe finestra
long FAR PASCAL BersaglioWndProc (HWND, unsigned, WORD, DWORD);
// ---- Memorizza la classe della finestra
if (!hPrevInst) // Solo se 1ma istanza
{
wc.hCursor = LoadCursor (NULL, IDC_CROSS);
wc.hIcon = NULL;
wc.lpszMenuName = NULL;
wc.lpszClassName = "Bersaglio";
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.hInstance = hInst;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)BersaglioWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 6;
RegisterClass (&wc);
}
}
/* ------------------------------ MainInit ---------------------------
* Inizializzazioni, chiamate dal main
* ---------------------------------------------------------------- */
BOOL FAR MainInit (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
BOOL bOk = FALSE; // Risultato
do
{
// ---- Inizializzazioni generali
hInst = hInstance; // Istanza corrente
hPrevInst = hPrevInstance; // Istanza precedente
// ---- Classe BERSAGLIO
BersaglioInit ();
// ---- Creazione della finestra principale
if (!TopInit (lpCmdLine, nCmdShow))
break;
// ---- Uscita normale
bOk = TRUE;
}
while (0);
return bOk;
}
/* ------------------------------ MainConc ---------------------------
* Conclusioni, chiamate dal main
* ---------------------------------------------------------------- */
VOID FAR MainConc (VOID)
{
return;
}