다음을 통해 공유


단추 상태

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

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

단추 선택

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

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

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

단추 상태의 요소

단추의 상태는 포커스 상태, 누름 상태 및 선택 상태로 구분될 수 있습니다.

포커스 상태

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

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

누름 상태

누름 상태는 누름 단추, 확인란, 라디오 단추 또는 세 가지 상태의 확인란에 적용되지만 다른 단추에는 적용되지 않습니다. 단추의 누름 상태는 누르거나 누르지 않을 수 있습니다. 누름 단추(또는 BS_PUSHLIKE 스타일이 있는 단추)을 누르면 단추가 움푹 들어간 단추로 그려집니다. 누르지 않으면 볼록 단추로 그려집니다. 확인란, 라디오 단추 또는 세 가지 상태의 확인란을 클릭하면 단추의 배경이 회색으로 표시됩니다. 누르지 않으면 단추의 배경이 회색으로 표시되지 않습니다.

상태 확인

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

단추 상태 변경

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

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

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