home *** CD-ROM | disk | FTP | other *** search
- /* cordine.c ... freeware button accordion dialog example
- * jack j. woehr p.o. box 51, golden co 80402-0051
- * jax@well.sf.ca.us JAX on GEnie 72203.1320@compuserve.com
- * SYSOP, RealTime Control & Forth Board [RCFB] (303) 278-0364
- */
-
- #include <windows.h>
- #include "cordine.h"
-
- HINSTANCE hInst;
-
- char szAppName[] = "Cordine";
-
- int APIENTRY WinMain(
- HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
-
- MSG msg;
- // HANDLE hAccelTable;
-
- if (!hPrevInstance) {
- if (!InitApplication(hInstance)) {
- return (FALSE);
- }
- }
-
- if (!InitInstance(hInstance, nCmdShow)) {
- return (FALSE);
- }
-
- while (GetMessage(&msg, NULL, 0, 0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
-
- return (msg.wParam);
- lpCmdLine;
- }
-
- BOOL InitApplication(HINSTANCE hInstance)
- {
- WNDCLASS wc;
- wc.style = CS_HREDRAW | CS_VREDRAW;
- wc.lpfnWndProc = (WNDPROC)WndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = hInstance;
- wc.hIcon = LoadIcon(hInstance,"Cordine");
- wc.hCursor = LoadCursor(NULL, IDC_ARROW);
- wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = szAppName;
-
- return (RegisterClass(&wc));
- }
-
- BOOL InitInstance( HINSTANCE hInstance, int nCmdShow)
- {
- HWND hWnd;
- hInst = hInstance;
-
- hWnd = CreateWindow(
- szAppName,
- szAppName,
- WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
- NULL,
- NULL,
- hInstance,
- NULL
- );
-
- if (!hWnd) {
- return (FALSE);
- }
-
- ShowWindow(hWnd, SW_MINIMIZE);
- UpdateWindow(hWnd);
- return (TRUE);
- }
-
- LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM uParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
-
- case WM_SYSCOMMAND:
- switch (0xfff0 & uParam)
- {
- case SC_MAXIMIZE:
- DialogBox(hInst, MAKEINTRESOURCE (100), hWnd, (DLGPROC)CordineProc);
- return (0);
-
- case SC_RESTORE:
- DialogBox(hInst, MAKEINTRESOURCE (100), hWnd, (DLGPROC)CordineProc);
- return (0);
- }
-
- default:
- return (DefWindowProc(hWnd, message, uParam, lParam));
- }
- return (0);
- }
-
- LRESULT CALLBACK CordineProc ( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- HWND idCntrl;
- HMENU sysMenu;
-
- switch (message)
- {
- case WM_INITDIALOG:
- if (idCntrl = GetDlgItem (hDlg, IDM_DURATION))
- {
- SetScrollRange (idCntrl, SB_CTL, 50, 500, FALSE) ;
- // We allow a tone duration of 50 mS to 500 ms
- SetScrollPos (idCntrl, SB_CTL, duration, TRUE) ;
- }
- sysMenu = GetSystemMenu (hDlg, FALSE);
- AppendMenu (sysMenu, MF_STRING|MF_ENABLED, IDMSC_HELP, "&Help");
- AppendMenu (sysMenu, MF_STRING|MF_ENABLED, IDMSC_ABOUT, "&About");
- return FALSE;
-
- case WM_COMMAND:
- switch (wParam)
- {
- case IDM_LO_C:
- Beep ((DWORD) TONE_LO_C, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_G:
- Beep ((DWORD) TONE_LO_G, (DWORD) duration);
- return FALSE;
-
- case IDM_C:
- Beep ((DWORD) TONE_C, (DWORD) duration);
- return FALSE;
-
- case IDM_G:
- Beep ((DWORD) TONE_G, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_D:
- Beep ((DWORD) TONE_LO_D, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_A:
- Beep ((DWORD) TONE_LO_A, (DWORD) duration);
- return FALSE;
-
- case IDM_D:
- Beep ((DWORD) TONE_D, (DWORD) duration);
- return FALSE;
-
- case IDM_A:
- Beep ((DWORD) TONE_A, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_E:
- Beep ((DWORD) TONE_LO_E, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_BFLAT:
- Beep ((DWORD) TONE_LO_BFLAT, (DWORD) duration);
- return FALSE;
-
- case IDM_E:
- Beep ((DWORD) TONE_E, (DWORD) duration);
- return FALSE;
-
- case IDM_BFLAT:
- Beep ((DWORD) TONE_BFLAT, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_F:
- Beep ((DWORD) TONE_LO_F, (DWORD) duration);
- return FALSE;
-
- case IDM_LO_B:
- Beep ((DWORD) TONE_LO_B, (DWORD) duration);
- return FALSE;
-
- case IDM_F:
- Beep ((DWORD) TONE_F, (DWORD) duration);
- return FALSE;
-
- case IDM_B:
- Beep ((DWORD) TONE_B, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_C:
- Beep ((DWORD) TONE_HI_C, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_G:
- Beep ((DWORD) TONE_HI_G, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_D:
- Beep ((DWORD) TONE_HI_D, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_A:
- Beep ((DWORD) TONE_HI_A, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_E:
- Beep ((DWORD) TONE_HI_E, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_BFLAT:
- Beep ((DWORD) TONE_HI_BFLAT, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_F:
- Beep ((DWORD) TONE_HI_F, (DWORD) duration);
- return FALSE;
-
- case IDM_HI_B:
- Beep ((DWORD) TONE_HI_B, (DWORD) duration);
- return FALSE;
-
- default:
- return FALSE;
- }
-
- case WM_HSCROLL :
- switch (LOWORD (wParam))
- {
- case SB_BOTTOM : // Scroll to bottom.
- duration = 500 ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_LINEDOWN : // Scroll one line down.
- duration = min (500, duration + 5) ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_LINEUP : // Scroll one line up.
- duration = max (50, duration -5) ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_PAGEDOWN : // Scroll one page down.
- duration = min (500, duration + 50) ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_PAGEUP : // Scroll one page up.
- duration = max (50, duration - 50) ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_THUMBPOSITION :
- duration = HIWORD (wParam) ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_THUMBTRACK :
- duration = HIWORD (wParam) ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- case SB_TOP: // Scroll to top.
- duration = 50 ;
- SetScrollPos ( (HWND) (lParam), SB_CTL, duration, TRUE) ;
- return 0 ;
-
- default:
- return FALSE ;
- }
-
- case WM_SYSCOMMAND :
- switch (wParam)
- {
- case SC_CLOSE:
- EndDialog (hDlg,TRUE);
- return TRUE;
-
- case IDMSC_ABOUT:
- DialogBox (hInst, MAKEINTRESOURCE (300), hDlg, (DLGPROC)AboutProc);
- return TRUE;
-
- case IDMSC_HELP:
- DialogBox (hInst, MAKEINTRESOURCE (500), hDlg, (DLGPROC)HelpProc);
- return TRUE;
-
- default:
- return FALSE ;
- }
- }
- return (FALSE);
-
- lParam;
- }
-
- LRESULT CALLBACK AboutProc ( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_INITDIALOG:
- Beep ( (DWORD) 55, (DWORD) 500);
- return FALSE;
-
- case WM_COMMAND:
- switch (wParam)
- {
- case ABOUT_OK1:
- EndDialog (hDlg,TRUE);
- return FALSE;
-
- case ABOUT_OK2:
- EndDialog (hDlg,TRUE);
- return FALSE;
-
- default:
- return FALSE;
- }
-
- case WM_SYSCOMMAND :
- switch (wParam)
- {
- case SC_CLOSE:
- EndDialog (hDlg,TRUE);
- return TRUE;
-
- default:
- return FALSE ;
- }
- default:
- return FALSE;
- }
- }
-
- LRESULT CALLBACK HelpProc ( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_COMMAND:
- switch (wParam)
- {
- case IDMSC_BAYOU:
- EndDialog (hDlg,TRUE);
- return FALSE;
-
- default:
- return FALSE;
- }
-
- case WM_SYSCOMMAND :
- switch (wParam)
- {
- case SC_CLOSE:
- EndDialog (hDlg,TRUE);
- return TRUE;
-
- default:
- return FALSE ;
- }
- default:
- return FALSE;
- }
- }
-