/*------------------------------------------- window procedure ---------------------------------------------*/ LRESULT CALLBACK WndProcTimer(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_CREATE: OnCreate(hwnd); return 0; case WM_DESTROY: OnDestroy(hwnd); return 0; case WM_TIMER: switch(wParam) { case IDTIMER_TIMER: OnTimerTimer(hwnd); break; } return 0; // show dialog box case TIMERM_SHOWDLG: OnShowDialog(hwnd); return 0; // add item to tcmenu*.txt case TIMERM_REQUESTMENU: OnRequestMenu(hwnd, FALSE); return 0; // stop running timer case TIMERM_STOP: OnStopTimer(hwnd, (int)lParam); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }
//==============================================================================* // ---------------------------------- Dialog Procedure for Add/Edit Timers Dialog //================================================================================* INT_PTR CALLBACK DlgProcTimer(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_INITDIALOG: OnInit(hDlg); return TRUE; case WM_DESTROY: OnDestroy(hDlg); break; case WM_COMMAND: { WORD id = LOWORD(wParam); WORD code = HIWORD(wParam); switch(id) { case IDC_TIMERDEL: OnDel(hDlg); break; case IDOK: OnOK(hDlg); /* fall through */ case IDCANCEL: DestroyWindow(hDlg); break; case IDC_TIMERNAME: if(code==CBN_EDITCHANGE) OnTimerName(hDlg); else if(code==CBN_SELCHANGE) PostMessage(hDlg, WM_COMMAND, MAKEWPARAM(id, CBN_EDITCHANGE), lParam); break; case IDCB_STOPTIMER: OnStopTimer(hDlg); break; case IDC_TIMERSANSHO: OnSanshoAlarm(hDlg, id); break; case IDC_TIMERTEST: OnTest(hDlg, id); break; } return TRUE; } //--------------------------------------------------------------------------+++--> case WM_NOTIFY: { //========================================== BEGIN WM_NOTIFY: //----------------------------------------------------------------------------+++--> if(((NMHDR*)lParam)->code == UDN_DELTAPOS) { NMUPDOWN* lpnmud; int i; lpnmud = (NMUPDOWN*)lParam; if(lpnmud->iDelta > 0) { // User Selected the Up Arrow switch(LOWORD(wParam)) { //--+++--> on One of the Timer Controls. case IDC_TIMERSECSPIN: i = GetDlgItemInt(hDlg, IDC_TIMERSECOND, NULL, TRUE); if(i == 59) UpdateNextCtrl(hDlg, IDC_TIMERMINSPIN, IDC_TIMERMINUTE, TRUE); break; case IDC_TIMERMINSPIN: i = GetDlgItemInt(hDlg, IDC_TIMERMINUTE, NULL, TRUE); if(lpnmud->iDelta == 4) { if(i < 59) SetDlgItemInt(hDlg, IDC_TIMERMINUTE, i+1, TRUE); } if(i == 59) UpdateNextCtrl(hDlg, IDC_TIMERHORSPIN, IDC_TIMERHOUR, TRUE); break; case IDC_TIMERHORSPIN: i = GetDlgItemInt(hDlg, IDC_TIMERHOUR, NULL, TRUE); if(lpnmud->iDelta == 4) { if(i < 23) SetDlgItemInt(hDlg, IDC_TIMERHOUR, i+1, TRUE); } if(i == 23) UpdateNextCtrl(hDlg, IDC_TIMERDAYSPIN, IDC_TIMERDAYS, TRUE); break; case IDC_TIMERDAYSPIN: if(lpnmud->iDelta == 4) { i = GetDlgItemInt(hDlg, IDC_TIMERDAYS, NULL, TRUE); if(i < 7) SetDlgItemInt(hDlg, IDC_TIMERDAYS, i+1, TRUE); } break; } } else { //--+++--> User Selected the Down Arrow switch(LOWORD(wParam)) { // on One of the Timer Controls. case IDC_TIMERSECSPIN: if(lpnmud->iDelta == -4) { i = GetDlgItemInt(hDlg, IDC_TIMERSECOND, NULL, TRUE); if(i > 0) SetDlgItemInt(hDlg, IDC_TIMERSECOND, i -1, TRUE); } break; case IDC_TIMERMINSPIN: i = GetDlgItemInt(hDlg, IDC_TIMERMINUTE, NULL, TRUE); if(lpnmud->iDelta == -4) { if(i > 0) SetDlgItemInt(hDlg, IDC_TIMERMINUTE, i -1, TRUE); } if(i == 0) UpdateNextCtrl(hDlg, IDC_TIMERSECSPIN, IDC_TIMERSECOND, FALSE); break; case IDC_TIMERHORSPIN: i = GetDlgItemInt(hDlg, IDC_TIMERHOUR, NULL, TRUE); if(lpnmud->iDelta == -4) { if(i > 0) SetDlgItemInt(hDlg, IDC_TIMERHOUR, i -1, TRUE); } if(i == 0) UpdateNextCtrl(hDlg, IDC_TIMERMINSPIN, IDC_TIMERMINUTE, FALSE); break; case IDC_TIMERDAYSPIN: i = GetDlgItemInt(hDlg, IDC_TIMERDAYS, NULL, TRUE); if(i == 0) UpdateNextCtrl(hDlg, IDC_TIMERHORSPIN, IDC_TIMERHOUR, FALSE); break; } } } //----------------------------------------------------------------------------+++--> return TRUE; //=============================================== END WM_NOTIFY: } //----------------------------------------------------------------------+++--> case MM_MCINOTIFY: case MM_WOM_DONE: StopFile(); SendDlgItemMessage(hDlg, IDC_TIMERTEST, BM_SETIMAGE, IMAGE_ICON, (LPARAM)g_hIconPlay); return TRUE; } return FALSE; }