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

  STUDY #2 : Basic Message & Window treatment in WNDPROC

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

  (1). 타이틀 바 제목 얻기 & 제목 정하기
  ==============================================

    int GetWindowText( HWND hwnd, LPCSTR lpsz, int cch );

      p1 hwnd - 제목을 알아내려는 윈도의 핸들
      p2 lpsz - 제목을 저장할 버퍼
      p3 cch  - 버퍼의 최대 크기

    BOOL SetWindowText( HWND hwnd, LPCSTR lpsz );

      예제)
    ...< WinProc 함수부 >......................................

    LRESULT CALLBACK WndProc(HWND hWnd,UINT mseg,WPARAM wParam,LPARAM lParam)
    {
        char szTitle[] = "제목이 바뀌었네요...";
        char szGetTitle[80];

        switch(mseg)
        {
            case WM_CREATE: SetWindowText(hWnd, szTitle);
                            return FALSE;

            case WM_KETDOWN: if(LOWWORD(wParam)==VK_RETURN)
                              {
                                GetWindowText(hWnd,szGetTile,80);
                                MessageBox(hWnd,szGetTitle,"",MB_OK);
                              }
                              return FALSE;

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

   (2). 메세지 처리
=========================================================

    위의 예제중의 WM_CREATE나 WM_KEYDOWN이나 WM_DESTROY는 모두 메세지의
    일종입니다.

    먼저 WM_CREATE는 윈도우가 처음 생성된후 발생하는 메세지로 여기서
    대부분의 변수 초기화를 하게 되지요. 이 소스에서는 타이틀의 제목을
    바꾸는 군요.. >>> SetTextWindow()

    이번에는 WM_KEYDOWN이라는 메세지군요? 이 메세지는 F1~F12,Shift,Alt,Ctrl
    Delete등의 특수키가 입력 되었을때 발생하는 메세지입니다.
    구체적인 값은 wParam의 하위워드에 있기에 LOWWORD를 했습니다.

    WM_DESTROY라는 메세지는 윈도 닫기를 누르면 발생하는 메세지입니다.

    * 함수 설명

int MessageBox( HWND hwndOwner, LPCSTR lpszText, LPCSTR lpszTitle, UINT fuStyle );

    유저에게 어떤 정보를 보이기 위한 간단한 대화상자입니다.
    MB_OK는 무조건 OK버튼 하나만 생성한다는 뜻입니다.

  (3). 윈도 다루기 여러 함수
==========================================================

   이제 다루려는 함수들은 바이블식으로 무작정 함수를 설명한다기 보다
   앞으로 코딩하면서 거의 꼭 쓰다 싶이 하는 빈도수가 많은 함수를
   공부하는 것입니다.

   처음 RegisterClass()함수를 배웠습니다. App가 시작하면 윈도클래스를 등록하는
   것인데 도중에 그 윈도 클래스를 변경하고 싶을때는 SetClassLong()을 쓰면

+ Recent posts