BOOL Run(void) { char strMsg[1024] = {0}; CTime runTime = CTime::GetCurrentTime(); int hour = runTime.GetHour(); sprintf(strMsg , "LocalHour= %d", hour); cout<<strMsg<<endl; TimerProc(NULL , 0 ,0 ,0); int nSend = (int)SetTimer(NULL , 1 , RUNNING_TIMES , (TIMERPROC)TimerProc); //每分钟运行一次回调函数 MSG msg; if(nSend) { cout<<nSend<<endl; } BOOL bRet = FALSE; while((bRet=GetMessage(&msg, NULL, 0, 0)) != 0) // while(::GetMessage(&msg , NULL , 0 , 0)) { if(bRet != -1) { if(msg.message == WM_TIMER) { cout<<"WM_TIMER"<<endl; } TranslateMessage(&msg); DispatchMessage(&msg); } else { break; } } KillTimer(NULL , nSend); return TRUE; }
void CContextWeather::Draw(UINT nContextNum) { char szText[64] = {0,}; char szWeatherMent[7][10] = { "맑음\0", "구름조금\0", "흐림\0", "소나기\0", "비\0", "뇌우\0", "눈\0" }; CObjectIcon* pObjectIcon = NULL; MTM_DATA_PARKING parking_info; if(m_gc==0) return; DBGMSGC(DBG_WEATHER, "++ [%d]\r\n", nContextNum); if (!check_update_cond(nContextNum)) { DBGMSGC(DBG_PARKING, "update has aleady been\r\n"); return; } update_new_info(); //배경 m_ObjectList.Draw(WEATHER_OBJ_BG); if(g_setup_data.m_SetupData.wallpad_type == WALLPAD_TYPE_SHN) { DrawText("오 늘", g_wid, g_gc, 83, 20, 60, 18, g_font, 18, WHITE, TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); //왼쪽 DrawText("내 일", g_wid, g_gc, 665, 20, 60, 18, g_font, 18, WHITE, TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); //오른쪽 } else { DrawText("오 늘", g_wid, g_gc, 83, 20, 60, 18, g_font, 18, WHITE, TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); //왼쪽 DrawText("오 늘", g_wid, g_gc, 665, 20, 60, 18, g_font, 18, WHITE, TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); //오른쪽 } //왼쪽 날씨 DrawText(szWeatherMent[g_setup_data.m_SetupData.weather_left], g_wid, g_gc, 65, 51, 96, 32, g_font, 24, RGB(1,19,73), TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); // DBGMSGC(DBG_WEATHER, "[Left] %d / %d [Right] %d / %d\r\n", // g_setup_data.m_SetupData.temp_low_left, g_setup_data.m_SetupData.temp_high_left, // g_setup_data.m_SetupData.temp_low_right, g_setup_data.m_SetupData.temp_high_right); //왼쪽 기온 (Text) : 정수표시 if(g_setup_data.m_SetupData.wallpad_type == WALLPAD_TYPE_KCM) { sprintf(szText, " %d\0", g_setup_data.m_SetupData.temp_high_left / 10); } else if(g_setup_data.m_SetupData.wallpad_type == WALLPAD_TYPE_HDT) { sprintf(szText, "%2.1f\0", g_setup_data.m_SetupData.temp_high_left / 10.0); } else { sprintf(szText, "%2d/%2d\0", g_setup_data.m_SetupData.temp_low_left / 10, g_setup_data.m_SetupData.temp_high_left / 10); } DrawText(szText, g_wid, g_gc, 17, 100, 112, 32, g_font, 24, WHITE, TXT_HALIGN_RIGHT|TXT_VALIGN_MIDDLE); memset(szText, 0, 64); //왼쪽 날씨 이미지 pObjectIcon = (CObjectIcon*)m_ObjectList.FindObjectByID(WEATHER_OBJ_WEATHER_LEFT); if(pObjectIcon) { pObjectIcon->Draw(g_setup_data.m_SetupData.weather_left); } //오른쪽 날씨 DrawText(szWeatherMent[g_setup_data.m_SetupData.weather_right], g_wid, g_gc, 647, 51, 96, 32, g_font, 24, RGB(162,199,213), TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); //오른쪽 기온 (Text) : 정수표시 if(g_setup_data.m_SetupData.wallpad_type == WALLPAD_TYPE_KCM) { sprintf(szText, " %d\0", g_setup_data.m_SetupData.temp_high_right / 10); } else if(g_setup_data.m_SetupData.wallpad_type == WALLPAD_TYPE_HDT) { sprintf(szText, "%2.1f\0", g_setup_data.m_SetupData.temp_high_right / 10.0); } else { sprintf(szText, "%2d/%2d\0", g_setup_data.m_SetupData.temp_low_right / 10, g_setup_data.m_SetupData.temp_high_right / 10); } DrawText(szText, g_wid, g_gc, 599, 100, 112, 32, g_font, 24, WHITE, TXT_HALIGN_RIGHT|TXT_VALIGN_MIDDLE); memset(szText, 0, 64); //오른쪽 날씨 이미지 pObjectIcon = (CObjectIcon*)m_ObjectList.FindObjectByID(WEATHER_OBJ_WEATHER_RIGHT); if(pObjectIcon) { pObjectIcon->Draw(g_setup_data.m_SetupData.weather_right); } //가스 pObjectIcon = (CObjectIcon*)m_ObjectList.FindObjectByID(WEATHER_OBJ_GAS); if(pObjectIcon) { //g_setup_data.m_SetupData.gas_stat: 0=열림(사용중)=적색(위험), 1=차단=검정(안전) pObjectIcon->Draw(g_setup_data.m_SetupData.gas_stat ? IMG_ENUM_GAS_OFF : IMG_ENUM_GAS_ON); //ON=가스사용, OFF=가스차단 } //주차위치 m_ObjectList.Draw(WEATHER_OBJ_PARKING_BAR); parking_list_get_item(0, &parking_info); if (parking_info.status == MTM_DATA_PARKING_STATUS_IN) { memset(szText, 0, 64); sprintf(szText, "%s %s", parking_info.floor, parking_info.zone); DrawText(szText, m_wid_parent, m_gc, 73, 436, 180, 32, g_font, 24, WHITE, TXT_HALIGN_LEFT|TXT_VALIGN_MIDDLE); } TimerProc(CLOCK_TIMER); memset(szText, 0, 64); //< 버전표기 if(VER_REVISION != ' ') { if(strlen(VER_STRING) > 0) sprintf(szText, "[ v%d.%02d.%c-%s %s ]\0", VER_MAJOR, VER_MINOR, VER_REVISION, VER_DATE, VER_STRING); else sprintf(szText, "[ v%d.%02d.%c-%s ]\0", VER_MAJOR, VER_MINOR, VER_REVISION, VER_DATE); } else { if(strlen(VER_STRING) > 0) sprintf(szText, "[ v%d.%02d-%s %s ]\0", VER_MAJOR, VER_MINOR, VER_DATE, VER_STRING); else sprintf(szText, "[ v%d.%02d-%s ]\0", VER_MAJOR, VER_MINOR, VER_DATE); } DrawText(szText, g_wid, g_gc, 0, 400, strlen(szText)*6+4, 14, g_font, 12, BLACK, TXT_HALIGN_CENTER|TXT_VALIGN_MIDDLE); //> DBGMSGC(DBG_WEATHER, "--\r\n"); }
static int InitializeApp (HWND hDlg,WPARAM wParam, LPARAM lParam) { Timer = SetTimer (hDlg,Timer,1000,TimerProc); TimerProc (hDlg,0,0,0); return 1; }
/** * Called when all the modules have had their modules loaded event handlers called (dependence of popups on fontservice :( ) */ int ModulesLoaded2(WPARAM, LPARAM) { // check for 'still absent' contacts on startup TimerProc(nullptr, 0, 0, 0); return 0; }
BYTE CLayerMap::Scroll(BYTE byDirection, BOOL bNoCheck) { BYTE byRet; int x, y, nMapX, nMapY, nMoveWait, anPosChangeX[] = {0, 0, -1, 1, 1, 1, -1, -1}, anPosChangeY[] = {-1, 1, 0, 0, -1, 1, 1, -1}; PCInfoMapBase pMap; byRet = 0; /* スクロールしないモード? */ if (m_bScroll == FALSE) { goto Exit; } if (bNoCheck) { m_nMoveX = m_nMoveY = 0; } else { if (IsScroll ()) { goto Exit; } } pMap = m_pMgrData->GetMap (); if (pMap == NULL) { goto Exit; } x = (int)m_nViewX + anPosChangeX[byDirection]; y = (int)m_nViewY + anPosChangeY[byDirection]; nMapX = (x % 2) ? x / 2 + 1 : x / 2; nMapY = (y % 2) ? y / 2 + 1 : y / 2; switch (byDirection) { case 0: if (y < 0) { goto Exit; } byRet = byDirection + 1; break; case 1: if (nMapY + DRAW_PARTS_Y > pMap->m_sizeMap.cy) { goto Exit; } byRet = byDirection + 1; break; case 2: if (x < 0) { goto Exit; } byRet = byDirection + 1; break; case 3: if (nMapX + DRAW_PARTS_X > pMap->m_sizeMap.cx) { goto Exit; } byRet = byDirection + 1; break; case 4: if (nMapX + DRAW_PARTS_X > pMap->m_sizeMap.cx) { if (y >= 0) { byRet = 0 + 1; break; } goto Exit; } if (y < 0) { goto Exit; } byRet = byDirection + 1; break; case 5: if (nMapX + DRAW_PARTS_X > pMap->m_sizeMap.cx) { if (nMapY + DRAW_PARTS_Y <= pMap->m_sizeMap.cy) { byRet = 1 + 1; break; } goto Exit; } if (nMapY + DRAW_PARTS_Y > pMap->m_sizeMap.cy) { goto Exit; } byRet = byDirection + 1; break; case 6: if (x < 0) { if (nMapY + DRAW_PARTS_Y <= pMap->m_sizeMap.cy) { byRet = 1 + 1; break; } goto Exit; } if (nMapY + DRAW_PARTS_Y > pMap->m_sizeMap.cy) { goto Exit; } byRet = byDirection + 1; break; case 7: if (x < 0) { if (y >= 0) { byRet = 0 + 1; break; } goto Exit; } if (y < 0) { goto Exit; } byRet = byDirection + 1; break; } m_byDirection = byRet - 1; x = (int)m_nViewX + anPosChangeX[m_byDirection]; y = (int)m_nViewY + anPosChangeY[m_byDirection]; nMoveWait = m_nMoveWait; if (m_dwMoveWaitOnce != 0) { nMoveWait = m_dwMoveWaitOnce; } m_dwLastTimeScroll = timeGetTime () - nMoveWait; m_nViewX = (WORD)x; m_nViewY = (WORD)y; TimerProc (); Exit: return byRet; }