WS_GROUP 스타일

기본적으로 시스템 입력된 포커스를 다음 또는 이전 컨트롤로 이동 방향 키를 누를 때마다. 시스템 사용자를 지속적으로 방향 키를 눌러 대화 상자의 모든 컨트롤을 통해 입력된 포커스를 이동 하려면 계속 만큼 입력된 포커스를 현재 컨트롤은 이러한 키를 처리 하지 않습니다, 다음 또는 이전 컨트롤은 정적 컨트롤.

응용 프로그램이이 기본 동작을 수정 하려면 WS_GROUP 스타일을 사용할 수 있습니다. 스타일 컨트롤 그룹의 시작을 표시 합니다. 그룹의 컨트롤에 입력된 포커스가 사용자 방향 키를 누르면 시작 될 때, 그룹에 포커스가 유지 됩니다. 일반적으로, 그룹의 첫 번째 컨트롤로 WS_GROUP 스타일 있어야 하 고 그룹에 있는 다른 모든 컨트롤 해야 합니다 없습니다 이 스타일을가지고 있다. 그룹에 있는 모든 컨트롤 연속적 이어야 ? 즉, 그들은 만들어야 연속적으로 개입 없이 컨트롤.

사용자가 방향 키를 누르면 먼저 시스템 입력된 포커스를 갖는 전류 제어 방향 키 처리 여부를 결정 합니다. 시스템 컨트롤에 WM_GETDLGCODE 메시지를 보냅니다 및 컨트롤 DLGC_WANTARROWS 값을 반환 하는 경우에 컨트롤 키를 전달 합니다. 시스템 그룹에서 다음 컨트롤을 결정 하려면 GetNextDlgGroupItem 함수를 사용 하는 그렇지 않으면.

GetNextDlgGroupItem 그들은 만들어진 순서 (또는 역순)에서 컨트롤을 검색 합니다. 사용자가 오른쪽 또는 키를 GetNextDlgGroupItem 경우 해당 컨트롤은 다음 컨트롤을 반환 하는 경우 없는 WS_GROUP 스타일을가지고 있다. 그렇지 않으면 함수 검색 순서를 반전 하 고 WS_GROUP 스타일은 첫 번째 컨트롤을 반환 합니다. 만약 사용자가 왼쪽 또는 키, 함수를 현재 컨트롤에 대 한 이미 WS_GROUP 스타일 하지 않으면 이전 컨트롤을 반환 합니다. 현재 컨트롤에이 스타일을 하는 경우 함수 검색 순서를 반대로, WS_GROUP 스타일을 갖는 첫 번째 컨트롤 찾아서 컨트롤 바로 앞에 있는 컨트롤을 반환 합니다.

일단 시스템에 있는 다음 또는 이전 컨트롤, 컨트롤 종류를 확인 하려면 컨트롤에 WM_GETDLGCODE 메시지를 보냅니다. 시스템이 다음 입력된 포커스를 컨트롤로 이동 정적 컨트롤이 없으면. 자동 라디오 버튼 컨트롤의 경우, 시스템을 BM_CLICK 메시지를 보냅니다. 또한 응용 프로그램 그룹에 있는 컨트롤을 찾을 GetNextDlgGroupItem 사용할 수 있습니다.

일반적으로, 그룹의 첫 번째 컨트롤로 결합 WS_GROUP 및 WS_TABSTOP 스타일 사용자는 tab 키를 사용 하 여 그룹에서 그룹을 이동할 수 있도록 합니다. 라디오 단추를 포함 하는 그룹, 응용 프로그램 그룹의 첫 번째 컨트롤에만 WS_TABSTOP 스타일을 적용 해야 합니다. 시스템이 자동으로 사용자 그룹에 있는 컨트롤 간에 이동할 때 스타일을 이동 합니다. 이렇게 하면 사용자는 tab 키를 사용 하 여 그룹을 이동할 때 입력된 포커스가 가장 최근에 선택한 컨트롤에 항상 있을 것입니다.

 

Index