Aracılığıyla paylaş


Klavye ve fare özelleştirme

mfc, klavye ve fare girişinin nasıl işleyeceğini özelleştirmek için uygulamanızın kullanıcı verir. Komutları için klavye kısayolları atayarak kullanıcının klavye girişlerini özelleştirebilir. Kullanıcı, belirli bir uygulama windows kullanıcı tıklattığında yürütülmelidir komutunu seçerek fare girişi de özelleştirebilirsiniz. Bu konu, giriş uygulamanız için özelleştirmek açıklar.

İçinde özelleştirme iletişim kutusunda, kullanıcı, fare ve klavye için özel denetimleri değiştirebilirsiniz. Bu iletişim kutusunu görüntülemek için kullanıcı gösterdiği için özelleştirme , View menüsünü ve sonra tıklatma araç çubukları ve Docking. İletişim kutusunda, kullanıcı tıklattığında ya da klavye sekmesini veya Fare sekmesi.

Klavye özelleştirme

Aşağıdaki resimde gösterildiği klavye sekmesinde özelleştirme iletişim kutusu.

Klavye özelleştirme sekmesi

Özelleştirme iletişim kutusunun klavye sekmesi

Kullanıcı bir veya daha fazla klavye kısayollarını komuta atamak için klavye sekmesini ile etkileşime girer. Kullanılabilir komutlar sekmesini sol tarafında listelenir. Kullanıcı menüsünde kullanılabilir bir komut seçebilirsiniz. Menü komutlarını klavye kısayolu ile ilişkili olabilir. Kullanıcı yeni bir kısayol girdikten sonra Ata olur düğmesi etkin. Kullanıcı bu düğmeyi tıklattığında, uygulama seçili komut bu kısayol ile ilişkilendirir.

Geçerli olarak atanmış bir klavye kısayolu sağ sütun liste kutusunda listelenir. Ayrıca kullanıcı kısayolları'nı seçin ve bunları kaldırmak veya uygulama için tüm eşlemeler sıfırla.

Bu özelleştirme uygulamanızda desteklemek istiyorsanız, oluşturmanız gerekir bir CKeyboardManager nesnesi. Oluşturmak için bir CKeyboardManager nesne, işlev çağrısı CWinAppEx::InitKeyboardManager. Bu yöntemi oluşturur ve klavye Yöneticisi başlatır. Klavye Yöneticisi el ile oluşturursanız, siz hala çağırması gerekir CWinAppEx::InitKeyboardManager başlatmak üzere.

Uygulama oluşturmak için sihirbaz kullanırsanız, sihirbaz klavye Yöneticisi'ni başlatmak. Framework uygulamanız klavye Yöneticisi başlatır sonra ekler bir klavye için sekme özelleştirme iletişim kutusu.

Fareyi özelleştirme

Aşağıdaki resimde gösterildiği Fare sekmesinde özelleştirme iletişim kutusu.

Fareyi özelleştirme sekmesi

Özelleştirme iletişim kutusunun fare sekmesi

Bir menüyü atamak için bu sekmeyi kullanıcı etkileşim komutuna fare eylemi çift tıklatın. Kullanıcı bir görünüm penceresinin sol taraftan seçer ve çift tıklatma eylemini içeren bir komut ilişkilendirmek için sağdaki denetimleri kullanır. Sonra kullanıcı yakın, her kullanıcı, herhangi bir görünümde çift tıklattığında, uygulama ilişkili komutu yürütür.

Sihirbazı kullanarak bir uygulama oluşturduğunuzda, fareyi özelleştirme varsayılan olarak etkin değildir.

Fareyi özelleştirme etkinleştirmek için

  1. Initialize bir CMouseManager nesnesini çağırarak CWinAppEx::InitMouseManager.

  2. İşaretçinin fare Yöneticisi'ni kullanarak elde CWinAppEx::GetMouseManager.

  3. Görünümleri kullanarak fare Yöneticisi ekleme CMouseManager::AddView yöntemi. Fare Yöneticisi eklemek istediğiniz her görünüm için bunu yapın.

Framework uygulamanız fare Yöneticisi başlatır sonra ekler Fare için sekme özelleştirme iletişim kutusu. Tüm görünümler eklemezseniz, sekme erişme işlenmeyen bir özel durum neden olur. Görünümler listesini oluşturduktan sonra Fare sekmesinde, kullanıcı tarafından kullanılabilir.

Fare Yöneticisi yeni bir görünüm eklediğinizde, benzersiz bir kimliği vermiş Fareyi özelleştirme için bir pencere desteklemek istiyorsanız, işlemek gerekir WM_LBUTTONDBLCLICK ileti ve çağrı CWinAppEx::OnViewDoubleClick işlevi. Bu işlevini çağırdığınızda, o pencerenin kimliği parametrelerden biridir. Kimlik numaraları ve bunlarla ilişkili nesneleri izlemek için Programcı sorumluluğundadır.

Güvenlik konuları

Açıklandığı gibi Kullanıcı tanımlı araçları, kullanıcı kullanıcı tanımlı aracı kimliği çift olayıyla ilişkilendirebilirsiniz. Kullanıcı bir görünüm tıklattığında, uygulama ilişkili kimliği ile eşleşen bir kullanıcı aracı arar. Uygulama eşleştirme aracı bulursa, aracın yürütür. Uygulama eşleştirme aracı bulamazsa, tıklatıldığında görünüm ID wm_command iletisi gönderir.

Özelleştirilmiş ayarları, kayıt defterinde depolanır. Kayıt defterini düzenleyerek, saldırgan geçerli bir kullanıcı aracı kimliği isteğe bağlı bir komut ile değiştirebilirsiniz. Kullanıcı bir görünüm tıklattığında görünüm saldırgan Ekme komutu işler. Bu beklenmeyen ve tehlikeli davranışlara neden olabilir.

Buna ek olarak, bu tür saldırılardan kullanıcı arabirimi önlemlerinin atlayabilirsiniz. Örneğin, bir uygulama yazdırmayı devre dışı olduğunu varsayalım. Diğer bir deyişle, kullanıcı arabiriminde baskı menü ve düğme kullanılamaz. Normalde bu uygulamadan yazdırma önler. Ancak saldırgan kayıt defteri düzenlenmişse, kullanıcı artık print komutunun görünümü tıklatarak doğrudan kullanılamayan kullanıcı arabirimi öğeleri atlayarak Gönder.

Bu tür bir saldırıya karşı korumak için onu yürütülmeden önce komut geçerli olduğunu doğrulamak için uygulama komut işleyici kodu ekleyin. Kullanıcı arabiriminde bir komutu uygulamaya gönderilmesini önlemek için bağımlı değildir.

Ayrıca bkz.

Başvuru

CKeyboardManager sınıfı

CMouseManager sınıfı

Kavramlar

mfc için özelleştirme

Güvenlik uygulamalarını özelleştirme