|
|
1.1 ! root 1: /************************************************************************\ ! 2: * ! 3: * PROGRAM: SPINTEST.C ! 4: * ! 5: * PURPOSE: Demonstrates the use of the SPINCUBE custom control. ! 6: * ! 7: * FUNCTIONS: WinMain() - standard stuff; also loads the ! 8: * SPINCUBE.DLL and creates a couple ! 9: * of spincube controls. ! 10: * MainWndProc() - generic window procedure. ! 11: * SpintestDlgProc() - generic dialog procedure. ! 12: * ! 13: \************************************************************************/ ! 14: ! 15: #include <windows.h> ! 16: #include "spintest.h" ! 17: ! 18: ! 19: ! 20: /************************************************************************\ ! 21: * ! 22: * FUNCTION: WinMain (standard WinMain INPUTS/RETURNS) ! 23: * ! 24: * GLOBAL VARS: hInst - Handle of program instance ! 25: * ! 26: \************************************************************************/ ! 27: ! 28: int WinMain (HANDLE hInstance,HANDLE hPrevInstance, LPSTR lpCmdLine, ! 29: int nCmdShow) ! 30: { ! 31: WNDCLASS wc; ! 32: HWND hWnd; ! 33: MSG msg; ! 34: HANDLE hLib; ! 35: RECT rect; ! 36: WORD i; ! 37: ! 38: wc.style = NULL; ! 39: wc.lpfnWndProc = (WNDPROC) MainWndProc; ! 40: wc.cbClsExtra = 0; ! 41: wc.cbWndExtra = 0; ! 42: wc.hInstance = hInstance; ! 43: wc.hIcon = LoadIcon (hInstance, "spintesticon"); ! 44: // wc.hIcon = LoadIcon (NULL, IDI_APPLICATION); ! 45: wc.hCursor = LoadCursor (NULL, IDC_ARROW); ! 46: wc.hbrBackground = GetStockObject (WHITE_BRUSH); ! 47: wc.lpszMenuName = (LPSTR) "Menu"; ! 48: wc.lpszClassName = (LPSTR) "Main"; ! 49: ! 50: if (!RegisterClass (&wc)) ! 51: { ! 52: MessageBox (NULL, "WinMain(): RegisterClass() failed", ! 53: "Err! - SPINTEST", MB_OK | MB_ICONHAND); ! 54: return(FALSE); ! 55: } ! 56: ! 57: hInst = hInstance; ! 58: if (!(hWnd = CreateWindow ("Main", "spintest Sample Application", ! 59: WS_OVERLAPPEDWINDOW, ! 60: CW_USEDEFAULT, CW_USEDEFAULT, ! 61: CW_USEDEFAULT, CW_USEDEFAULT, ! 62: NULL, NULL, hInstance, NULL))) ! 63: return (NULL); ! 64: ! 65: if (!(hLib = LoadLibrary ((LPTSTR) "SPINCUBE.DLL"))) ! 66: MessageBox (NULL, "WinMain(): LoadLibrary (SPINCUBE.DLL) failed", ! 67: "Err! - SPINTEST", MB_OK | MB_ICONHAND); ! 68: ! 69: for (i = 0; i < 3; i++) ! 70: hwndSpin[i] = CreateWindow ("Spincube", "", WS_VISIBLE | WS_CHILD, ! 71: 0, 0, 0, 0, hWnd, NULL, hLib, NULL); ! 72: ! 73: GetClientRect (hWnd, &rect); ! 74: SendMessage (hWnd, WM_SIZE, 0, ! 75: MAKELONG((WORD)rect.right,(WORD)rect.bottom)); ! 76: ShowWindow (hWnd, nCmdShow); ! 77: ! 78: while (GetMessage (&msg, NULL, NULL, NULL)) ! 79: { ! 80: TranslateMessage (&msg); ! 81: DispatchMessage (&msg); ! 82: } ! 83: FreeLibrary (hLib); ! 84: return (msg.wParam); ! 85: UNREFERENCED_PARAMETER(hPrevInstance); ! 86: UNREFERENCED_PARAMETER(lpCmdLine); ! 87: } ! 88: ! 89: ! 90: ! 91: /************************************************************************\ ! 92: * ! 93: * FUNCTION: MainWndProc (standard window procedure INPUTS/RETURNS) ! 94: * ! 95: * GLOBAL VARS: hInst - Handle of program instance ! 96: * ! 97: \************************************************************************/ ! 98: ! 99: LONG MainWndProc (HWND hWnd, UINT message, UINT wParam, LONG lParam) ! 100: { ! 101: switch (message) ! 102: { ! 103: case WM_COMMAND: ! 104: ! 105: switch (LOWORD(wParam)) ! 106: { ! 107: case IDM_ABOUT: ! 108: ! 109: DialogBox(hInst, "SpintestDlg", hWnd, (DLGPROC)SpintestDlgProc); ! 110: break; ! 111: } ! 112: break; ! 113: ! 114: case WM_SIZE: ! 115: { ! 116: int width = (int) LOWORD(lParam); ! 117: int height = (int) HIWORD(lParam); ! 118: ! 119: SetWindowPos (hwndSpin[0], NULL, ! 120: BORDER, BORDER, ! 121: width/4 - BORDER, height/4 - BORDER, ! 122: SWP_SHOWWINDOW); ! 123: SetWindowPos (hwndSpin[1], NULL, ! 124: width/4 + BORDER, height/4 + BORDER, ! 125: width/2 - BORDER, height/4 - BORDER, ! 126: SWP_SHOWWINDOW); ! 127: SetWindowPos (hwndSpin[2], NULL, ! 128: 3*width/4 + BORDER, height/2 + BORDER, ! 129: width/4 - 2*BORDER, height/2 - 2*BORDER, ! 130: SWP_SHOWWINDOW); ! 131: break; ! 132: } ! 133: case WM_DESTROY: ! 134: ! 135: PostQuitMessage (NULL); ! 136: break; ! 137: ! 138: default: ! 139: ! 140: return (DefWindowProc (hWnd, message, wParam, lParam)); ! 141: } ! 142: return (NULL); ! 143: } ! 144: ! 145: ! 146: ! 147: /************************************************************************\ ! 148: * ! 149: * FUNCTION: SpintestDlgProc (standard dialog procedure INPUTS/RETURNS) ! 150: * ! 151: \************************************************************************/ ! 152: ! 153: BOOL SpintestDlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam) ! 154: { ! 155: switch (message) ! 156: { ! 157: case WM_INITDIALOG: ! 158: ! 159: return (TRUE); ! 160: ! 161: case WM_COMMAND: ! 162: ! 163: if (LOWORD(wParam) == IDOK) ! 164: { ! 165: EndDialog (hDlg, TRUE); ! 166: return (TRUE); ! 167: } ! 168: return (TRUE); ! 169: } ! 170: return (FALSE); ! 171: UNREFERENCED_PARAMETER(lParam); ! 172: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.