■ 키보드 메시지

키보드로부터 입력이 발생하면 윈도우즈는 포커스를 가진 프로그램에게 키보드 메시지를 보낸다.

프로그램은 이런 메시지를 받아 키보드 입력을 처리한다.

 

□ 포커스(Focus)

입력 초점. 키보드 입력을 받아 들일 수 있는 상태.

포커스를 가진 상태란 활성화 되어 있고 현재 사용자가 쓰고 있다는 뜻으로 한 번에 하나의 프로그램만 활성화된다.

멀티 태스킹이 가능한 윈도우 환경이라 하더라도 활성화 될 수 있는 프로그램은 하나 밖에 없으며,

활성화된 프로그램만 포커스를 가지고 입력 받을 수 있다.

 

□ 키보드 메시지의 종류

메시지는 시스템 메시지와 비시스템 메시지로 나뉜다.

비 시스템 메시지는 사용자가 발생시키는 메시지(WM_...로 시작)이며,

시스템 메시지는 Alt키와 함께 눌러지는 키보드 메시지로, 접두사SYS를 사용하여 운영체제가 부가적인 정보를 따라붙인다.

 

1. WM_KEYDOWN: 키보드를 누를때 모든 키에 대해 발생(Alt키, 윈도우 키, 한/영전환키 등 특수 키 제외)

2. WM_KEYUP: 키다 떨어질 때(잘 사용하지 않음)

3. WM_CHAR: 키보드로부터 문자 입력

4. WM_DEADCHAR: 유럽의 악센트 문자, 움라우트 문자 입력(이런 언어를 입력받는 프로그램을 만들지 않는 한 신경쓸 필요없음)

(시스템 메시지)

5. WM_SYSKEYDOWN

6. WM_SYSKEYUP

7.WM_SYSCHAR

8.WM_SYSDEADCHAR

 

□ 키보드 입력 처리

입력된 문자들은 WM_CHAR 메시지에서 모은다. 키보드 입력을 받는 시점(WM_CHAR)과 출력시점(WM_PAINT)이 분리되어 있으므로

입력된 문자들은 바로바로 출력하지 않고 반드시 모아야 한다.

문자를 입력받는 즉시 바로바로 출력하면 다른 프로그램에 의해 가려져 지워졌을 때 다시 복구되지 않을 것이다.

 

□ TranslateMessage

키누름 메시지(WM_KEYDOWN, WM_SYSKEYDOWN)를 문자메시지로 변환하는 작업을 한다.

WM_CHAR은 사용자에 의해 발생하는 메시지가 아니며, WM_KEYDOWN에 의해 추가로 발생하는 메시지이다.

 

 

■ 마우스 메시지

 

 

□ 주요 마우스 메시지

 

'PROGRAMMING > winAPI' 카테고리의 다른 글

[0322수업[ 스레드  (0) 2011.03.22
GDI  (0) 2011.03.20
[0318수업] 윈도우 메시지  (0) 2011.03.18
[0317수업] struct SCROLLINFO  (0) 2011.03.17
DC(Device Contexts)  (0) 2011.03.17
Posted by 마마필로 :