다음을 통해 공유


Windows Forms 애플리케이션의 사용자 입력

Windows Forms에서 사용자 입력은 Windows 메시지 형식으로 애플리케이션에 전송됩니다. 일련의 재정의 가능한 메서드는 애플리케이션, 양식 및 컨트롤 수준에서 해당 메시지를 처리합니다. 해당 메서드는 마우스 및 키보드 메시지를 수신하면 처리할 수 있는 이벤트를 발생시켜 마우스 또는 키보드 입력 정보를 가져옵니다. 대부분의 경우 Windows Forms 애플리케이션은 해당 이벤트를 처리하여 모든 사용자 입력을 처리할 수 있습니다. 다른 경우에는 애플리케이션, 양식 또는 컨트롤이 메시지를 수신하기 전에 특정 메시지를 가로채기 위해 애플리케이션이 메시지를 처리하는 메서드 중 하나를 재정의해야 할 수 있습니다.

마우스 및 키보드 이벤트

모든 Windows Forms 컨트롤은 마우스 및 키보드 입력과 관련된 이벤트 세트를 상속합니다. 예를 들어 컨트롤은 KeyPress 이벤트를 처리하여 누른 키의 문자 코드를 확인하거나 컨트롤이 MouseClick 이벤트를 처리하여 마우스 클릭 위치를 확인할 수 있습니다. 마우스 및 키보드 이벤트에 대한 자세한 내용은 키보드 이벤트 사용Windows Forms의 마우스 이벤트를 참조하세요.

사용자 입력 메시지를 처리하는 메서드

양식 및 컨트롤은 메시지 큐의 서로 다른 지점에서 Windows 메시지를 처리하는 재정의 가능한 메서드 세트와 IMessageFilter 인터페이스에 액세스할 수 있습니다. 해당 메서드에는 모두 Windows 메시지의 하위 수준 세부 정보를 캡슐화하는 Message 매개 변수가 있습니다. 해당 메서드를 구현하거나 재정의하여 메시지를 검사한 다음, 메시지를 사용하거나 메시지 큐로 다음 소비자에게 전달할 수 있습니다. 다음 표는 Windows Forms의 모든 Windows 메시지를 처리하는 메서드를 제공합니다.

메서드 참고
PreFilterMessage 이 메서드는 애플리케이션 수준에서 큐에 있는(게시된) Windows 메시지를 가로챕니다.
PreProcessMessage 이 메서드는 처리되기 전에 양식 및 컨트롤 수준에서 Windows 메시지를 가로챕니다.
WndProc 이 메서드는 양식 및 컨트롤 수준에서 Windows 메시지를 처리합니다.
DefWndProc 이 메서드는 양식 및 컨트롤 수준에서 Windows 메시지의 기본 처리를 수행합니다. 창의 최소 기능을 제공합니다.
OnNotifyMessage 이 메서드는 처리된 후 양식 및 컨트롤 수준에서 메시지를 가로챕니다. 해당 메서드를 호출하려면 EnableNotifyMessage 스타일 비트를 설정해야 합니다.

키보드 및 마우스 메시지는 해당 메시지 형식과 관련된 재정의 가능한 추가 메서드 세트에서 처리됩니다. 자세한 내용은 키보드 입력 작동 방식Windows Forms에서 마우스 입력이 작동하는 방식을 참조하세요.

참고 항목