....................................................................
  OutPut Group Study in API (Application Programming Interface)

  STUDY #3 : Icon & Cursor by USER & TIMER

                      Typed by Jo.K.M   1997/12/16 01:51
....................................................................
   *  :  참고      >>> :  참고 어휘   pn : 파라미터

    (1) 사용자 아이콘 커서 이용하기
  ===========================================

    윈도가 사용하는 여러 자료를 모아 정리한 파일을 리소스 파일이라고 하는데
    메뉴나 대화상자, 비트맵, 아이콘을 이곳에서 정의 하지요. 그리고 우리가
    직접 만든 그림을 아이콘으로 사용할라면 리소스 파일에 정의를 해야합니다.
    * 컴파일시 Insert/Files into Project 로 리소스 파일도 포함해야 합니다.

    .....< test.rc >...........................
    #include <windows.h>

    MyIcon   ICON    "my.ico"
    MyCursor CURSOR  "my.cur"
    ...........................................
    ......< api.c >............................
      :
    첫번째 부분
    WndClass.hIcon = LoadIcon(hInstance,"MyIcon");
    WndClass.hCursor = LoadCursor(hInstance,"MyCursor");
      :
    ...........................................

    (2). 타이머 사용하기
  =============================================

    타이머란 정해진 만큼의 시간간격을 주기로 신호를 보내는 것을 말합니다.
    API에서는 SetTimer()를 통해 타이머 아이디를 얻은후 WM_TIMER의 메세지를
    통해서 이를 이용하게 됩니다.

   UINT SetTimer( HWND hwnd, UINT idTimer, UINT uTimeout, TIMERPROC tmprc );

     p1 hwnd - 윈도 핸들
     p2 idTimer - 타이머 아이디 (핸들,고유 번호)
     uTimeout - 타이머 발생 주기 시간   nTimer * 1000 = 1 sec
     tmprc - 타이머 발생시 수행할 함수명  보통 NULL을 지정합니다.

    위 함수를 이용하여 타이머를 생성합니다. 이렇게 생성한 타이머는 일정 간격
    주기가 되면 WM_TIMER라는 메세지를 발생하게 합니다. 우리는 이제 이 메세지
    에서 타이머 발생시 처리할 내용을 넣으면 돼겠군요?

    그리고 이제 생성할줄 알았다면 마지막에 지우는 것도 알아두면 좋겠군요?

   BOOL KillTimer( HWND hwnd, UINT idEvent );

     p1 hwnd - 타이머가 존재하는 윈도 핸들
     p2 idEvent - 지울 타이머 아이디


  ..........<apitimer.c>..................................
LRESULT CALLBACK WndProc(HWND hWnd,UINT mseg,WPARAM wParam,LPARAM lParam)
{
    HDC hDC;
    static int n;
    static char szTimer[80];

    switch(mseg)
    {
        case WM_CREATE: SetTimer(hWnd,100,1000,NULL);
                        return FALSE;

        case WM_TIMER:   switch(LOWORD(wParam))
                         {
                           case 100: n++;
                           hDC = GetDC( hDC, 100,100,sz,spritnf(szTimer,"
                           Count : %d",n));
                           ReleaseDC(hWnd,hDC);
                           break;
                         }

        case WM_DESTROY: KillTimer(hWnd,100);
                         PostQuitMessage(0);
                         return FALSE;
    }
    return DefWindowProc(hWnd,mseg,wParam,lParam);
}
.............................................................

+ Recent posts