Exemple #1
0
/*-------------------------------------------
  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);
}
Exemple #2
0
//==============================================================================*
// ---------------------------------- 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;
}