|
|
1.1 ! root 1: /*--------------------------------------------------------- ! 2: WELCOME.C -- A Program that Writes to its Client Window ! 3: ---------------------------------------------------------*/ ! 4: ! 5: #include <os2.h> ! 6: ! 7: MRESULT EXPENTRY ClientWndProc (HWND, USHORT, MPARAM, MPARAM) ; ! 8: ! 9: int main (void) ! 10: { ! 11: static CHAR szClientClass [] = "Welcome" ; ! 12: HAB hab ; ! 13: HMQ hmq ; ! 14: HWND hwndFrame, hwndClient ; ! 15: QMSG qmsg ; ! 16: ULONG flFrameFlags = FCF_STANDARD & ~FCF_MENU ; ! 17: ULONG flFrameStyle = WS_VISIBLE ; ! 18: ! 19: hab = WinInitialize (0) ; ! 20: hmq = WinCreateMsgQueue (hab, 0) ; ! 21: ! 22: WinRegisterClass ( ! 23: hab, /* Anchor block handle */ ! 24: szClientClass, /* Name of class being registered */ ! 25: ClientWndProc, /* Window procedure for class */ ! 26: CS_SIZEREDRAW, /* Class style */ ! 27: 0) ; /* Extra bytes to reserve */ ! 28: ! 29: hwndFrame = WinCreateStdWindow ( ! 30: HWND_DESKTOP, /* Parent window handle */ ! 31: flFrameStyle, /* Style of frame window */ ! 32: &flFrameFlags, /* Pointer to control data */ ! 33: szClientClass, /* Client window class name */ ! 34: "WELCOME Program", /* Title bar text */ ! 35: 0L, /* Style of client window */ ! 36: NULL, /* Module handle for resources */ ! 37: 0, /* ID of resources */ ! 38: &hwndClient) ; /* Pointer to client window handle */ ! 39: ! 40: while (WinGetMsg (hab, &qmsg, NULL, 0, 0)) ! 41: WinDispatchMsg (hab, &qmsg) ; ! 42: ! 43: WinDestroyWindow (hwndFrame) ; ! 44: WinDestroyMsgQueue (hmq) ; ! 45: WinTerminate (hab) ; ! 46: ! 47: return 0 ; ! 48: } ! 49: ! 50: MRESULT EXPENTRY ClientWndProc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2) ! 51: { ! 52: static CHAR szText [] = "Welcome to the OS/2 Presentation Manager" ; ! 53: HPS hps; ! 54: RECTL rcl ; ! 55: ! 56: switch (msg) ! 57: { ! 58: case WM_CREATE: ! 59: DosBeep (261, 100) ; ! 60: DosBeep (330, 100) ; ! 61: DosBeep (392, 100) ; ! 62: DosBeep (523, 500) ; ! 63: return 0 ; ! 64: ! 65: case WM_PAINT: ! 66: hps = WinBeginPaint (hwnd, NULL, NULL) ; ! 67: ! 68: WinQueryWindowRect (hwnd, &rcl) ; ! 69: ! 70: WinDrawText (hps, -1, szText, &rcl, ! 71: CLR_NEUTRAL, CLR_BACKGROUND, ! 72: DT_CENTER | DT_VCENTER | DT_ERASERECT) ; ! 73: ! 74: WinEndPaint (hps) ; ! 75: return 0 ; ! 76: ! 77: case WM_DESTROY: ! 78: DosBeep (523, 100) ; ! 79: DosBeep (392, 100) ; ! 80: DosBeep (330, 100) ; ! 81: DosBeep (261, 500) ; ! 82: return 0 ; ! 83: } ! 84: return WinDefWindowProc (hwnd, msg, mp1, mp2) ; ! 85: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.