Düğme Durumları
Bu bölümde, düğme seçme işleminin durumunu nasıl değiştirip uygulamanın nasıl yanıt vermesi gerektiği açıklanır.
bölümü aşağıdaki konulardan oluşur:
Düğme Seçimi
Kullanıcı bir düğmeyi üç yolla seçebilir: fareyle tıklayarak, sekmeyle tıklayıp ENTER tuşuna basarak veya (düğme WS_GROUP stiliyle tanımlanan bir grubun parçasıysa) gruptaki seçili düğmeye sekme tuşuyla gidip ok tuşlarını kullanarak bu grup içinde hareket edebilir. İki sekme yöntemi, sistem tarafından sağlanan önceden tanımlanmış klavye arabiriminin bir parçasıdır. Bu arabirimin tam açıklaması için bkz. İletişim Kutuları.
Bir düğmenin seçilmesi genellikle aşağıdaki olaylara neden olur:
- Sistem düğmeye klavye odağını verir.
- Düğme, üst penceresine seçimi bildirmek için bir ileti gönderir.
- Üst pencere (veya sistem), düğmeyi durumunu değiştirmek için bir ileti gönderir.
- Üst pencere (veya sistem), düğmeyi yeni durumunu yansıtacak şekilde yeniden boyar.
Düğme Durumunun Öğeleri
Bir düğmenin durumu odak durumu, gönderme durumu ve denetim durumu ile karakterize edilebilir.
Odak Durumu
Odak durumu bir onay kutusu, radyo düğmesi, basma düğmesi veya sahip tarafından çizilmiş düğme için geçerlidir. Düğme, kullanıcı seçtiğinde klavye odağını alır ve kullanıcı başka bir denetim seçtiğinde odağı kaybeder. Klavye odağı aynı anda yalnızca bir denetimde olabilir.
Bir düğme klavye odağına sahip olduğunda, sistem genellikle düğmenin metnini, simgesini veya bit eşlemini noktalı bir çizgiyle çevreleyerek vurgular. Buna ek olarak, bir düğmeye odaklanıldığında koyu renkli bir kenarlık vardır. Sistem otomatik düğmenin vurgusunu otomatik olarak değiştirir, ancak uygulamanın ileti göndererek otomatik olmayan bir düğmenin vurgusunu değiştirmesi gerekir.
Gönderme Durumu
Anında iletme durumu bir düğmeye, onay kutusuna, radyo düğmesine veya üç durumlu onay kutusuna uygulanır, ancak diğer düğmelere uygulanmaz. Bir düğmenin gönderim durumu gönderilebilir veya gönderilemez. Bir düğmeye (veya BS_PUSHLIKE stiline sahip herhangi bir düğmeye) basıldığında, düğme batık bir düğme olarak çizilir. Basılmadığında, yükseltilmiş bir düğme olarak çizilir. Onay kutusu, radyo düğmesi veya üç durumlu onay kutusuna tıklandığında, düğmenin arka planı gri görünür. Düğme gönderilmediğinde, düğmenin arka planı gri olmaz.
Durumu Denetle
Onay durumu bir onay kutusu, radyo düğmesi veya üç durumlu onay kutusu için geçerlidir, ancak diğer düğmeler için geçerli değildir. Durum işaretlenebilir, temizlenebilir veya (üç durumlu onay kutuları için) belirsiz olabilir. Onay kutusu bir onay işareti içerdiğinde işaretlenir ve işaretlenmediğinde temizlenir. Radyo düğmesi siyah nokta içerdiğinde denetlenirken; temizlenmediği zaman temizlenir. Onay işareti içerdiğinde üç durumlu bir onay kutusu işaretlenir, onay işareti olmadığında temizlenir ve gri bir kutu içerdiğinde belirsizdir. Sistem otomatik düğmenin denetim durumunu otomatik olarak değiştirir, ancak uygulamanın otomatik olmayan bir düğmenin denetim durumunu değiştirmesi gerekir.
Düğme DurumundaKi Değişiklikler
Kullanıcı bir düğmeyi seçtiğinde, düğmenin durum öğelerinden birini veya daha fazlasını değiştirmek genellikle gereklidir. Sistem, tüm düğme türleri için odak durumunu, BS_PUSHLIKE stiline sahip düğme veya düğme gönderme durumunu ve tüm otomatik düğmelerin denetim durumunu otomatik olarak değiştirir. Uygulamanın düğmenin türünü, stilini ve geçerli durumunu dikkate alarak diğer tüm durum değişikliklerini yapması gerekir. Aşağıdaki listede, her düğme türü için değiştirilmesi gereken durum öğeleri gösterilir:
- Onay kutusunun onay durumunu değiştirmesi gerekir.
- Radyo düğmesinin denetim durumunu değiştirmesi gerekir. Radyo düğmelerinin birbirini dışlayan doğasından emin olmak için aynı gruptaki diğer radyo düğmelerinin denetim durumunu değiştirmek de gerekebilir.
- Sahip tarafından çizilen düğmenin durumu uygulamaya bağlı olduğundan, uygulamanın düğmede değiştirmesi gerekenler farklılık gösterebilir. Kullanıcılar grup kutularını seçemediğinden, grup kutusunun hiçbir öğesi değiştirilmemelidir.
Uygulama, düğmenin durumunu BM_GETCHECK veya BM_GETSTATE iletisi göndererek belirleyebilir; uygulama, bir düğmenin durumunu BM_SETCHECK veya BM_SETSTATE iletisi göndererek ayarlayabilir.