Bagikan melalui


Mengekspos Item Kotak Kombo Owner-Drawn

Pengembang aplikasi tidak perlu menerapkan IAccessible untuk mengekspos item dalam kotak kombo yang digambar pemilik yang memiliki gaya CBS_HASSTRINGS karena Aksesibilitas Aktif Microsoft mengekspos item dalam kotak kombo dengan gaya ini. Item dalam kotak kombo yang digambar pemilik dengan gaya CBS_HASSTRINGS ditampilkan sebagai teks. Namun, gaya ini juga digunakan dengan kotak kombo yang digambar pemilik yang tidak menampilkan teks sehingga item kotak kombo diekspos oleh Aksesibilitas Aktif Microsoft.

Untuk memperbolehkan Aksesibilitas Aktif Microsoft mengekspos item dalam kotak kombo yang digambar pemilik yang tidak menampilkan teks:

  • Gunakan gaya CBS_HASSTRINGS saat membuat kotak kombo.
  • Buat rekan tekstual yang memberi nama atau menjelaskan setiap item dalam kotak kombo.
  • Saat menambahkan item ke kotak kombo yang digambar pemilik, gunakan pesan CB_ADDSTRING untuk menambahkan teks yang Anda inginkan untuk diekspos oleh Aksesibilitas Aktif Microsoft. Teks ini tidak ditampilkan, sehingga tidak boleh menjadi bagian dari data yang digambar pemilik. Tambahkan data item yang digambar pemilik menggunakan pesan CB_SETITEMDATA.

Saat menggunakan metode di atas, perhatikan hal berikut:

  • Jika Anda menggunakan gaya CBS_SORT , kotak kombo diurutkan menggunakan string yang disediakan dan bukan prosedur panggilan balik WM_COMPAREITEM .
  • Dengan kotak kombo variabel yang digambar pemilik yang dibuat dengan gaya CBS_OWNERDRAWVARIABLE, gunakan variabel global atau mekanisme lain untuk melacak kapan anggota itemDatadari MEASUREITEMSTRUCT valid. Variabel global diperlukan karena sistem mengirim pesan WM_MEASUREITEM segera setelah string ditambahkan tetapi sebelum data item dilampirkan, dan pada titik ini anggota itemData tidak valid.
  • Untuk mengubah string untuk item dalam kotak kombo dengan gaya CBS_HASSTRINGS , hapus item dengan pesan CB_DELETESTRING dan tambahkan string baru dengan pesan CB_ADDSTRING .