static void set_virtual_calendar(BOOL virtual) { UINT8 cbuf[8]; char buf[8]; int i; if (virtual) { calendar_getvir(cbuf); } else {
LRESULT CALLBACK ClndDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { TCHAR work[32]; UINT8 b; int i; HWND subwnd; switch (msg) { case WM_INITDIALOG: // 時間をセット。 calendar_getvir(cbuf); set_cal2dlg(hWnd, cbuf); if (np2cfg.calendar) { vircalendar(hWnd, FALSE); subwnd = GetDlgItem(hWnd, IDC_CLNDREAL); } else { vircalendar(hWnd, TRUE); subwnd = GetDlgItem(hWnd, IDC_CLNDVIR); } SendMessage(subwnd, BM_SETCHECK, TRUE, 0); SetFocus(subwnd); return(FALSE); case WM_COMMAND: switch(LOWORD(wp)) { case IDOK: b = (UINT8)GetDlgItemCheck(hWnd, IDC_CLNDREAL); if (np2cfg.calendar != b) { np2cfg.calendar = b; sysmng_update(SYS_UPDATECFG); } for (i=0; i<6; i++) { GetDlgItemText(hWnd, vircal[i].res, work, NELEMENTS(work)); b = getbcd(work, 2); if ((b >= vircal[i].min) && (b <= vircal[i].max)) { if (i == 1) { b = ((b & 0x10) * 10) + (b << 4); } cbuf[i] = b; } } calendar_set(cbuf); EndDialog(hWnd, IDOK); break; case IDCANCEL: EndDialog(hWnd, IDCANCEL); break; case IDC_CLNDVIR: vircalendar(hWnd, TRUE); return(FALSE); case IDC_CLNDREAL: vircalendar(hWnd, FALSE); return(FALSE); case IDC_SETNOW: calendar_getreal(cbuf); set_cal2dlg(hWnd, cbuf); return(FALSE); default: return(FALSE); } break; case WM_CLOSE: PostMessage(hWnd, WM_COMMAND, IDCANCEL, 0); break; default: return(FALSE); } return(TRUE); }