다음을 통해 공유


단추 상태

이 섹션에서는 단추를 선택하면 상태가 어떻게 변경되고 애플리케이션이 응답해야 하는지에 대해 설명합니다.

이 섹션은 다음 항목으로 구성됩니다.

단추 선택

사용자는 세 가지 방법으로 단추를 선택할 수 있습니다. 마우스로 단추를 클릭하고, 탭으로 이동한 다음 Enter 키를 누르거나, (단추가 WS_GROUP 스타일로 정의된 그룹의 일부인 경우) 그룹에서 선택한 단추로 탭하고 화살표 키를 사용하여 해당 그룹 내에서 이동할 수 있습니다. 두 개의 탭 메서드는 시스템에서 제공하는 미리 정의된 키보드 인터페이스의 일부입니다. 이 인터페이스에 대한 자세한 내용은 대화 상자참조하세요.

단추를 선택하면 일반적으로 다음 이벤트가 발생합니다.

  • 시스템은 단추에 키보드 포커스를 제공합니다.
  • 단추는 부모 창에 선택 사항을 알리는 메시지를 보냅니다.
  • 부모 창(또는 시스템)은 단추를 메시지를 보내 상태를 변경합니다.
  • 부모 창(또는 시스템)은 단추를 다시 그려 새 상태를 반영합니다.

단추 상태의 요소

단추의 상태는 포커스 상태, 푸시 상태 및 확인 상태로 특징지어질 수 있습니다.

포커스 상태

포커스 상태는 확인란, 라디오 단추, 누름 단추 또는 소유자가 그린 단추에 적용됩니다. 단추는 사용자가 키보드 포커스를 선택하면 키보드 포커스를 받고 사용자가 다른 컨트롤을 선택하면 포커스가 손실됩니다. 한 번에 하나의 컨트롤만 키보드 포커스를 가질 수 있습니다.

단추에 키보드 포커스가 있는 경우 시스템은 일반적으로 단추의 텍스트, 아이콘 또는 비트맵을 점선으로 둘러싸고 강조 표시합니다. 또한 푸시 버튼은 포커스가 있을 때 어두운 테두리가 짙습니다. 시스템은 자동 단추의 강조 표시를 자동으로 변경하지만 애플리케이션은 메시지를 전송하여 비자동 단추의 강조 표시를 변경해야 합니다.

푸시 상태

푸시 상태는 누름 단추, 확인란, 라디오 단추 또는 3개 상태 확인란에 적용되지만 다른 단추에는 적용되지 않습니다. 단추의 푸시 상태는 푸시하거나 푸시할 수 없습니다. 누름 단추(또는 BS_PUSHLIKE 스타일이 있는 단추)를 누르면 단추가 침몰 단추로 그려집니다. 푸시되지 않으면 발생된 단추로 그려집니다. 확인란, 라디오 단추 또는 3개 상태 확인란을 클릭하면 단추의 배경이 회색으로 표시됩니다. 푸시되지 않으면 단추의 배경이 회색으로 표시되지 않습니다.

상태 확인

확인란은 확인란, 라디오 단추 또는 3개 상태 확인란에 적용되지만 다른 단추에는 적용되지 않습니다. 상태를 선택하거나 선택 취소하거나(3개 상태 확인란의 경우) 확정되지 않을 수 있습니다. 확인란에 확인 표시가 포함되어 있는 경우 확인란이 선택되어 있지 않으면 선택 취소됩니다. 라디오 단추는 검은색 점이 포함된 경우 확인됩니다. 그렇지 않으면 지워집니다. 확인 표시가 포함된 경우 3개 상태 확인란이 선택되고, 선택 취소되지 않은 경우 선택 취소되며, 회색 상자가 포함되어 있을 때 확정되지 않습니다. 시스템은 자동 단추의 확인 상태를 자동으로 변경하지만 애플리케이션은 비자동 단추의 확인 상태를 변경해야 합니다.

단추 상태 변경

사용자가 단추를 선택하면 일반적으로 단추의 상태 요소 중 하나 이상을 변경해야 합니다. 시스템은 모든 단추 유형에 대한 포커스 상태, BS_PUSHLIKE 스타일을 사용하는 누름 단추 또는 단추의 푸시 상태 및 모든 자동 단추에 대한 확인 상태를 자동으로 변경합니다. 애플리케이션은 단추의 유형, 스타일 및 현재 상태를 고려하여 다른 모든 상태를 변경해야 합니다. 다음 목록에서는 각 단추 유형에 대해 변경해야 하는 상태 요소를 보여 줍니다.

  • 확인란은 확인 상태를 변경해야 합니다.
  • 라디오 단추는 확인 상태를 변경해야 합니다. 또한 라디오 단추의 상호 배타적 특성을 보장하기 위해 동일한 그룹에 있는 다른 라디오 단추의 확인 상태를 변경해야 할 수도 있습니다.
  • 소유자 그리기 단추의 상태는 애플리케이션에 따라 달라지므로 단추에서 변경해야 하는 애플리케이션은 다를 수 있습니다. 사용자가 그룹 상자를 선택할 수 없으므로 그룹 상자의 요소를 변경할 수 없습니다.

애플리케이션은 BM_GETCHECK 또는 BM_GETSTATE 메시지를 전송하여 단추의 상태를 확인할 수 있습니다. 애플리케이션은 BM_SETCHECK 또는 BM_SETSTATE 메시지를 전송하여 단추의 상태를 설정할 수 있습니다.