Aracılığıyla paylaş


Up-Down Denetimleri Hakkında

Aşağı doğru denetim, kullanıcının kaydırma konumu veya eşlikçi denetiminde görüntülenen bir sayı (arkadaş penceresi olarak adlandırılır) gibi bir değeri artırmak veya küçültmek için tıklayabileceği bir ok düğmeleri çiftidir.

Kullanıcıya göre, bir yukarı-aşağı kontrol düğmesi ve bağlı penceresi genellikle tek bir kontrol gibi görünür. Yukarı aşağı kontrolün kendisini otomatik olarak arkadaş penceresinin yanına yerleştireceğini ve arkadaş penceresinin başlığını mevcut konumuna otomatik olarak ayarlayacağını belirtebilirsiniz. Örneğin, kullanıcıdan sayısal bir giriş istemek için bir düzenleme denetimiyle birlikte bir yukarı aşağı denetimi kullanabilirsiniz. Aşağıdaki çizimde, düzenleme denetimiyle birlikte kullanılan bir yukarı-aşağı denetimi gösterilmektedir; bu birleşim bazen çevirmeli denetim olarak adlandırılır ve düzenleme kontrolünün yan penceresi görevini görür.

ekran görüntüsü, sağ kenarında yukarı ve aşağı okları olan kısa, geniş bir dikdörtgen kontrolü gösteriyor

Bu bölümde aşağıdaki konular ele alınıyor.

Up-Down Kontrol Stilleri

Pencere stillerini kullanarak, bir yukarı aşağı denetimin özelliklerini( örneğin, kendisini arkadaş penceresine göre nasıl konumlandırdığı, arkadaş penceresinin metnini ayarlayıp ayarlamadığı ve YUKARI OK ve AŞAĞI OK tuşlarını işleyip işlemediği gibi) değiştirebilirsiniz.

UDS_ALIGNLEFT veya UDS_ALIGNRIGHT stiline sahip yukarı-aşağı kontrol, arkadaş penceresinin sol veya sağ kenarıyla hizalanır. Yukarı-aşağı denetimin genişliğine yer açmak için arkadaş listesi penceresinin genişliği azaltılır.

UDS_SETBUDDYINT stiline sahip aşağı yukarı denetimi, geçerli konum her değiştiğinde arkadaş penceresinin başlığını ayarlar. Kontrol, UDS_NOTHOUSANDS stili belirtilmediği sürece ondalık dizenin her üç basamağı arasına binlik ayırıcı ekler. Arkadaş penceresi bir liste kutusuysa, yukarı-aşağı denetimi başlık yerine mevcut seçimi ayarlar.

Yukarı doğru denetim için klavye arabirimi sağlamak üzere UDS_ARROWKEYS stilini belirtebilirsiniz. Bu stil belirtilirse, denetim yukarı ve aşağı ok tuşlarını işler. Denetim ayrıca arkadaş penceresini alt sınıfa alır, böylece arkadaş penceresi odakta olduğunda bu anahtarları işleyebilir.

Yatay kaydırma için yukarı aşağı denetim kullanıyorsanız, UDS_HORZ stilini belirtebilirsiniz. Bu stil, yukarı-aşağı kontrolünün oklarının yukarı ve aşağı yerine sola ve sağa yönlendirmesine neden olur.

Varsayılan olarak, kullanıcı bunu artırmaya veya en büyük veya en düşük değerin ötesine azaltmaya çalışırsa geçerli konum değişmez. UDS_WRAP stilini kullanarak bu davranışı değiştirebilirsiniz, böylece konumun "sarma" işlemi ters uca doğru gerçekleştirilir. Örneğin, üst sınırın aşılması, konumu alt sınıra geri sarmalar.

Konum ve Hızlandırma

Aşağı doğru bir denetim oluşturulduktan sonra, iletileri göndererek denetimin geçerli konumunu, en düşük konumunu ve en yüksek konumunu değiştirebilirsiniz. Ayrıca, arkadaş penceresinde geçerli konumu ve yukarı veya aşağı oka tıklandığında geçerli konumun değişme hızını görüntülemek için kullanılan radix tabanını da değiştirebilirsiniz.

Yukarı-aşağı denetimin geçerli konumunu almak için UDM_GETPOS iletisini kullanın. Bir arkadaş penceresine sahip bir aşağı yukarı kontrolü için geçerli konum, arkadaş penceresinin başlığındaki sayıdır. Resim yazısı değişmiş olabileceğinden (örneğin, kullanıcı bir düzenleme denetiminin metnini düzenlemiş olabilir), yukarı-aşağı denetimi geçerli resim yazısını alır ve mevcut konumunu buna göre günceller.

Arkadaş penceresi başlığı, arttırma-azaltma kontrolünün sayı sistemine (yani taban 10 veya 16'ya) bağlı olarak ondalık veya onaltılık bir dize olabilir. UDM_SETBASE iletisini kullanarak radix tabanını ayarlayabilir ve UDM_GETBASE iletisini kullanarak radix tabanını alabilirsiniz.

UDM_SETPOS iletisi, bir arkadaş penceresinin geçerli konumunu ayarlar. Kaydırma çubuğunun aksine, yukarı ve aşağı oklarına tıklandığında yukarı-aşağı denetimi geçerli konumunu otomatik olarak değiştirir. Bu nedenle, bir uygulamanın WM_VSCROLL veya WM_HSCROLL iletisini işlerken geçerli konumu ayarlaması gerekmez.

UDM_SETRANGE iletisini kullanarak yukarı doğru denetimin en düşük ve en yüksek konumlarını değiştirebilirsiniz. Maksimum konum minimumdan küçük olabilir ve bu durumda yukarı ok düğmesine tıklanması geçerli konumu azaltır. Başka bir deyişle yukarı, maksimum konuma doğru ilerlemek anlamına gelir. Yukarı doğru denetimin en düşük ve en yüksek konumlarını almak için UDM_GETRANGE iletisini kullanın.

Kullanıcı aşağı yukarı denetimin hızlandırmasını ayarlayarak bir ok düğmesini basılı tuttuğunda konumun değişme hızını denetleyebilirsiniz. Hızlandırma, UDACCEL yapıları dizisi tarafından tanımlanır. Her yapı bir zaman aralığını ve bu aralığın sonunda artırılan veya azalan birim sayısını belirtir. Hızlandırmayı ayarlamak için UDM_SETACCEL iletisini kullanın. Hızlandırma bilgilerini almak için UDM_GETACCEL iletisini kullanın.

Varsayılan Up-Down İleti İşlemeyi Denetler

Bu bölümde, yukarı aşağı denetim tarafından işlenen standart Windows iletileri açıklanmaktadır.

İleti İşleme gerçekleştirildi
WM_CREATE Bir özel veri yapısını ayırır ve başlatır, adresini pencere verisi olarak kaydeder.
WM_DESTROY WM_CREATE işleme sırasında ayrılan verileri serbest getirir.
WM_ENABLE Pencereyi geçersiz kılar.
WM_KEYDOWN YUKARI OK veya AŞAĞI OK tuşuna basıldığında geçerli konumu değiştirir.
WM_KEYUP Konum değişikliğini tamamlar.
WM_LBUTTONDOWN Fareyi yakalar. Arkadaş penceresi bir düzenleme denetimi veya liste kutusuysa, odağı arkadaş penceresine ayarlar. Fare yukarı veya aşağı düğmesinin üzerindeyse, konumu değiştirmeye başlar ve bir zamanlayıcı ayarlar.
WM_LBUTTONUP Konum değişikliğini tamamlar ve aşağı-yukarı kontrolü fareyi yakaladıysa fare yakalamayı serbest bırakır. Arkadaş penceresi bir düzenleme denetimiyse, düzenleme denetimindeki tüm metni seçer.
WM_PAINT Yukarı-aşağı kontrolünü boyar. wParam parametresi NULL değilse, denetim değerin bir HDC olduğunu varsayar ve bu cihaz bağlamını kullanarak boyar.
WM_TIMER Fare bir düğmenin üzerinde bekletiliyorsa ve yeterli bir aralık geçmişse geçerli konumu değiştirir.