/**************/ /* simpletm.c */ /***************************************************************************** PROGRAM: simpletm.c PURPOSE: Runko yksinkertaisille Windows-ohjelmille joissa tarvitaan mahdollisesti keskeytys kesken piirron. 1) Kirjoitetaan tiedosto, jossa on käsittelyfunktiot ja käsittelytaulukko (esim. nimelle myown.c). 2) Tehdään projekti, jossa on tiedostot simpletm.c myown.c simpletm.def checker.c tabhandc.c 3) ja käännetään! Siinä se! Editor: Vesa Lappalainen 15.8.1992 & 16.6.1994 *****************************************************************************/ #include /* Tarvitaan kaikissa Windows C-ohjelmissa */ #include "tabhand.h" #include "checker.h" #define MAINWNAME "SimpleTClass" /* Tunniste, jolla ikkunaluokka tunnetaan */ static char *WindowName = "Hello World!"; long GlobalPrinter; /* Hämäykseksi checker.c:n linkitystä varten, jollei */ /* jakseta määritellä vakiota NOT_PRINTER */ extern tMSGEntry MsgTbl[]; TWINDOWPROC_C(MsgTbl,MainWndProc) /****************************************************************************/ int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc; /* Ikkunaluokka */ HWND hWnd; /* Pääikkunan kahva */ MSG msg; /* Viesti */ if (!lpCmdLine) lpCmdLine=NULL; /* Hämäystä, jottei valitusta param. */ if (!hPrevInstance) { /* Onko muita esiintymiä käynnissä? */ wc.style = NULL; wc.lpfnWndProc = MainWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = GetStockObject(WHITE_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = MAINWNAME; if (!RegisterClass(&wc)) return (FALSE); } hWnd = CreateWindow(MAINWNAME,WindowName,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInstance,NULL); if (!hWnd) return (FALSE); ShowWindow(hWnd, nCmdShow); /* Näytetään ikkuna */ UpdateWindow(hWnd); /* Lähetetään WM_PAINT viesti */ while (GetMessage(&msg,NULL,NULL,NULL)) { TranslateMessage(&msg); /* Tulkitaan virtuaaliset näp. koodit */ DispatchMessage(&msg); /* Lähetetään viesti ikkunalle */ CheckDelayMessages(hWnd); /* Moniajo tarvitsee! */ } return (msg.wParam); /* Palautetaan PostQuitMessage-funktion arvo */ }