Contents

조회 수 9210 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
SetTimer
The SetTimer function creates a timer with the specified time-out value. 
UINT SetTimer(
    HWND hWnd,              // handle of window for timer messages
    UINT nIDEvent,          // timer identifier
    UINT uElapse,           // time-out value
    TIMERPROC lpTimerFunc   // address of timer procedure );

The SetTimer function creates a timer with the specified time-out value. 

첫번째 인수 : 타이머 받을 윈도우
두번째 인수 : 타이머의 번호 (하나 이용시 1을 쓰고, 그외에 타이머들은 번호를 고유한 부여시킨다 )
세번째 인수 : 타이머의 주기 단위는 1/1000초  ( 1000 == 1초 )
네번째 인수 : 타이머 발생시 호출하는 함수 지정.

예) SetTimer(hWnd, 1, 1000, NULL );

//타이머는 시스템 전역 자원으로 이용 후 파괴하는것이 좋다.
BOOL KillTimer(
    HWND hWnd,      // handle of window that installed timer
    UINT uIDEvent   // timer identifier
);

두번째 인수 : SetTimer의 두번째 인자값이며, 파괴할 타이머 번호 대상이 된다. 

////////////////////////////////////////////////////////////////////////////////////

두개의 타이머 이용. 두개의 타이머 모두 WM_TIMER를 호출 한다.
또한 강제로 SendMessage()로 WM_TIMER를 불러 프로그램 시작 직후 바로 적용시킨다.

//예제
case WM_CREATE:
    SetTimer(hWnd, 1, 1000, NULL);
    SetTimer(hWnd, 2, 5000, NULL);
    SendMessage(hWnd, WM_TIMER, 1, 0);
    return 0;
    
case WM_TIMER:
    switch(wParam)
    {
        case 1:
            GetLocalTime(&st);
            wsprintf(sTime,TEXT("현재 시간 %d:%d:%d"),
                st.wHour, st.wMinute, st.wSecond);
            InvalidateRect(hWnd, NULL, TRUE);
            break;
        case 2:
            MessageBeep(0);
            break;
    }
    return 0;

////////////////////////////////////////////////////////////////////////////////////

일회용 타이머를 이용.

//WM_TIMER에 KillTimer를 넣어 이벤트 발생시 3초동안 글자 표시하고 사라지게 만드는 예제
static TCHAR str[128];

switch(iMessage)
{
    case WM_TIMER:
        KillTimer(hWnd, 1);
        lstrcpy(str,"");
        InvalidateRect(hWnd, NULL, TRUE);
        return 0;
        
    case WM_LBUTTONDOWN:
        lstrcpy(str,"왼쪽 버튼을 눌렀습니다.");
        InvalidateRect(hWnd, NULL, TRUE);
        SetTimer(hWnd, 1, 3000, NULL);
        return 0;
        
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        TextOut(hdc, 10,10, str, lstrlen(str));
        EndPaint(hWnd, &ps);
        return 0;
}


?

  1. [c] 문자열 자르는 함수(strtok) 예제

    Date2013.04.23 CategoryDevelop Byhooni Views12177
    Read More
  2. SVN 명령어 (SVN command)

    Date2014.02.28 CategoryDevelop Byhooni Views12152
    Read More
  3. 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ

    Date2013.04.23 CategoryDevelop Byhooni Views12129
    Read More
  4. [mysql] DB->Text, Text->DB 변환

    Date2003.04.23 CategoryDatabase Byhooni Views12129
    Read More
  5. [oracle] SQL문 실행 방법 3가지

    Date2013.12.19 CategoryDatabase Byhooni Views12126
    Read More
  6. [ios] GCD 변수 사용 예제

    Date2013.10.01 CategoryDevelop Byhooni Views12117
    Read More
  7. [linux] 데스크탑환경(GNOME/KDE) 바꾸기..

    Date2003.04.23 CategorySystem/OS Byhooni Views12102
    Read More
  8. [ppt] Magic URLs & Hidden Form Fields 에 대해.. ㅋㅋ

    Date2013.04.23 CategoryPPT Byhooni Views12094
    Read More
  9. [c++] 기초강좌 #03(함수의 매개변수 전달)

    Date2003.04.23 CategoryDevelop Byhooni Views12088
    Read More
  10. [linux] /etc/fstab 설정 방법.. ㅋㅋ

    Date2013.04.23 CategorySystem/OS Byhooni Views12084
    Read More
  11. [c++] 현승이가 준 P2P 프로그램 소스 ㅋㅋ

    Date2013.04.23 CategoryDevelop Byhooni Views12072
    Read More
  12. [linux] 쉘 스크립트 (Shell Script)

    Date2003.04.23 CategorySystem/OS Byhooni Views12065
    Read More
Board Pagination Prev 1 ... 28 29 30 31 32 33 34 35 36 37 ... 98 Next
/ 98