....................................................................
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()을 쓰면
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()을 쓰면
'KB > MFC/Win32' 카테고리의 다른 글
STUDY #4 : HDC (0) | 2004.03.19 |
---|---|
STUDY #3 : Icon & Cursor by USER & TIMER (0) | 2004.03.19 |
STUDY #1 : Basic structure Code in Windows's API (0) | 2004.03.19 |
프로세스와 멀티 스레드 프로그래밍 (0) | 2004.03.19 |
PreTranslateMessage() 안에서 DoModal (0) | 2004.03.19 |