Penanganan Keyboard untuk Kontrol

Kontrol merespons akselerator keyboard sehingga pengguna akhir dapat memulai tindakan yang dilakukan oleh kontrol. Kontainer mengelola aktivitas keyboard untuk semua kontrol yang disematkan. Dengan dokumen gabungan, akselerator keyboard hanya berlaku untuk objek yang saat ini aktif. Dengan kontrol, mekanisme telah ditambahkan sehingga kontrol dapat merespons mnemonics keyboard-nya meskipun saat ini tidak aktif dengan UI.

Metode IOleControl::GetControlInfo dan IOleControl::OnMnemonic dan metode IOleControlSite::OnControlInfoChanged menangani mnemonics keyboard kontrol. Struktur CONTROLINFO menjelaskan akselerator mnemonic kontrol, dan bendera yang diteruskan kembali melalui metode GetControlInfo menggambarkan perilaku kontrol dengan tombol Enter dan Esc. Ketika kontrol mengubah mnemonics-nya, kontrol memanggil OnControlInfoChanged sehingga kontainer dapat memuat ulang struktur jika perlu.

Ketika kontrol aktif UI, kontrol juga merupakan kontrol dengan fokus. Karena kontrol diaktifkan dan dinonaktifkan antara status aktif di tempat dan aktif UI, kontrol memanggil IOleControlSite::OnFocus untuk memberi tahu kontainer perubahan tersebut.

Selain itu, ketika kontrol aktif UI, kontrol akan memiliki kesempatan pertama untuk memproses penekanan tombol apa pun. Untuk memberi kontainer kesempatan untuk memproses penekanan tombol sebelum kontrol, kontrol memanggil IOleControlSite::TranslateAccelerator. Jika kontainer tidak menangani penekanan kunci, kontrol kemudian memprosesnya.

Kontrol ActiveX