Owner-Drawn 콤보 상자 항목 노출

Microsoft Active Accessibility는 이 스타일로 콤보 상자에 항목을 노출하므로 애플리케이션 개발자는 스타일이 CBS_HASSTRINGS 소유자 그리기 콤보 상자에 항목을 노출하기 위해 IAccessible을 구현할 필요가 없습니다. CBS_HASSTRINGS 스타일이 있는 소유자가 그린 콤보 상자의 항목이 텍스트로 표시됩니다. 그러나 이 스타일은 Microsoft Active Accessibility에서 콤보 상자 항목을 노출할 수 있도록 텍스트를 표시하지 않는 소유자 그리기 콤보 상자와 함께 사용됩니다.

Microsoft Active Accessibility에서 텍스트를 표시하지 않는 소유자가 그린 콤보 상자에 항목을 노출할 수 있도록 하려면 다음을 수행합니다.

  • 콤보 상자를 만들 때 CBS_HASSTRINGS 스타일을 사용합니다.
  • 콤보 상자에서 각 항목의 이름을 지정하거나 설명하는 텍스트 항목을 만듭니다.
  • 소유자가 그린 콤보 상자에 항목을 추가할 때는 CB_ADDSTRING 메시지를 사용하여 Microsoft Active Accessibility에서 노출할 텍스트를 추가합니다. 이 텍스트는 표시되지 않으므로 소유자가 그린 데이터의 일부가 아니어야 합니다. CB_SETITEMDATA 메시지를 사용하여 소유자가 그린 항목 데이터를 추가합니다.

위의 메서드를 사용하는 경우 다음 사항에 유의하세요.

  • CBS_SORT 스타일을 사용하는 경우 콤보 상자는 WM_COMPAREITEM 콜백 프로시저가 아닌 제공된 문자열을 사용하여 정렬됩니다.
  • 스타일 CBS_OWNERDRAWVARIABLE 사용하여 만든 소유자가 그린 변수 콤보 상자를 사용하여 전역 변수 또는 다른 메커니즘을 사용하여 MEASUREITEMSTRUCTitemData 멤버가 유효한 시기를 추적합니다. 문자열이 추가되자마자 시스템이 WM_MEASUREITEM 메시지를 전송하지만 항목 데이터가 연결되기 전에 이 시점에서 itemData 멤버가 유효하지 않기 때문에 전역 변수가 필요합니다.
  • CBS_HASSTRINGS 스타일을 사용하여 콤보 상자의 항목에 대한 문자열을 변경하려면 CB_DELETESTRING 메시지와 함께 항목을 삭제하고 CB_ADDSTRING 메시지와 함께 새 문자열을 추가합니다.