|
|
1.1 ! root 1: /*--------------------------------- ! 2: STAR5.C -- Draws 5-Pointed Star ! 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 [] = "Star5" ; ! 12: static ULONG flFrameFlags = FCF_TITLEBAR | FCF_SYSMENU | ! 13: FCF_SIZEBORDER | FCF_MINMAX | ! 14: FCF_SHELLPOSITION | FCF_TASKLIST ; ! 15: HAB hab ; ! 16: HMQ hmq ; ! 17: HWND hwndFrame, hwndClient ; ! 18: QMSG qmsg ; ! 19: ! 20: hab = WinInitialize (0) ; ! 21: hmq = WinCreateMsgQueue (hab, 0) ; ! 22: ! 23: WinRegisterClass (hab, szClientClass, ClientWndProc, CS_SIZEREDRAW, 0) ; ! 24: ! 25: hwndFrame = WinCreateStdWindow (HWND_DESKTOP, WS_VISIBLE, ! 26: &flFrameFlags, szClientClass, NULL, ! 27: 0L, NULL, 0, &hwndClient) ; ! 28: ! 29: while (WinGetMsg (hab, &qmsg, NULL, 0, 0)) ! 30: WinDispatchMsg (hab, &qmsg) ; ! 31: ! 32: WinDestroyWindow (hwndFrame) ; ! 33: WinDestroyMsgQueue (hmq) ; ! 34: WinTerminate (hab) ; ! 35: return 0 ; ! 36: } ! 37: ! 38: MRESULT EXPENTRY ClientWndProc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2) ! 39: { ! 40: static POINTL aptlStar[5] = {-59,-81, 0,100, 59,-81, -95,31, 95,31 } ; ! 41: static SHORT cxClient, cyClient ; ! 42: HPS hps ; ! 43: POINTL aptl[5] ; ! 44: SHORT sIndex ; ! 45: ! 46: switch (msg) ! 47: { ! 48: case WM_SIZE: ! 49: cxClient = SHORT1FROMMP (mp2) ; ! 50: cyClient = SHORT2FROMMP (mp2) ; ! 51: return 0 ; ! 52: ! 53: case WM_PAINT: ! 54: hps = WinBeginPaint (hwnd, NULL, NULL) ; ! 55: GpiErase (hps) ; ! 56: ! 57: for (sIndex = 0 ; sIndex < 5 ; sIndex++) ! 58: { ! 59: aptl[sIndex].x = cxClient / 2 + cxClient * ! 60: aptlStar[sIndex].x / 200 ; ! 61: aptl[sIndex].y = cyClient / 2 + cyClient * ! 62: aptlStar[sIndex].y / 200 ; ! 63: } ! 64: GpiMove (hps, aptl + 4) ; ! 65: GpiPolyLine (hps, 5L, aptl) ; ! 66: ! 67: WinEndPaint (hps) ; ! 68: return 0 ; ! 69: } ! 70: return WinDefWindowProc (hwnd, msg, mp1, mp2) ; ! 71: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.