Tarih ve Saat Seçici Denetimleri Hakkında

tarih ve saat seçici (DTP) denetimi, tarih ve saat bilgilerini bir kullanıcıyla değiştirmek için basit ve sezgisel bir arabirim sağlar. Örneğin, bir DTP denetimiyle kullanıcıdan tarih girmesini ve ardından seçimi kolayca almasını isteyebilirsiniz.

Aşağıdaki konular ele alınıyor:

Not

Windows, 1601 öncesi tarihleri desteklemez. Ayrıntılar için FILETIME yapısına bakın.

Denetim, 1753'te tanıtılan Gregoryen takvimi temel alır. Jülyen takvimiyle tutarlı olan tarihleri hesaplamaz.

Tarih ve Saat Seçici Kullanıcı Arabirimi

Tarih ve saat seçici (DTP) denetiminin istemci alanı tarih veya saat bilgilerini ya da her ikisini birden görüntüler ve kullanıcıların bilgileri değiştirdiği arabirim görevi görür. Tarih, bir takvimden veya yukarı aşağı kontrol kullanılarak seçilebilir; saat, kontrolün Biçim Dizeleritarafından tanımlanan alanlara yazılarak değiştirilebilir. İsteğe bağlı olarak, denetim bir onay kutusu görüntüler. İşaretlendiğinde, denetimdeki değer alınabilir; aksi halde, denetim başlatılmamış kabul edilir.

Aşağıdaki çizimde üç tarih seçici denetimi içeren bir pencere gösterilmektedir. İlk tarih seçici denetimi DTS_SHOWNONE stiliyle, ikincisi DTS_UPDOWN stiliyle ve üçüncüsü özel stiller olmadan oluşturuldu. Üçüncü denetimde kullanıcı, takvimi görüntülemek için aşağı oka tıklamıştır.

üç tarih seçici denetimi stilini gösteren bir pencerenin ekran görüntüsü

Aşağıdaki çizimde, saati içeren üç denetime sahip bir pencere gösterilmektedir.

İlk denetim DTS_TIMEFORMAT stiliyle oluşturulmuştur ve saati dört alandan oluşan varsayılan saatte gösterir. Kullanıcı bu alanlardan herhangi birine geçerli bir değer yazabilir ya da yukarı denetim veya ok tuşlarını kullanarak alanı seçip değeri değiştirebilir.

İkinci denetim, DateTime_SetFormatkullanılarak ayarlanan özel bir biçim gösterir. İlk denetimde olduğu gibi, kullanıcı yazarak veya ok tuşlarını kullanarak zaman alanlarını değiştirebilir. Kullanıcı aşağı oka tıkladığında açılan takvimden bir tarih seçilerek haftanın günü değiştirilebilir.

Üçüncü denetim, denetime rastgele metnin nasıl eklenebileceğini gösterir. Kullanıcı yazarak, ok tuşlarını kullanarak veya yukarı doğru denetimi kullanarak bir saat (1 ile 24 arasında) seçebilir.

Ekran görüntüsü , zamanı içeren üç denetimi gösteren bir pencere

DTP denetimi, iç bilgileri kullanıcının girişlerine göre otomatik olarak güncelleştirir. Denetim, aşağıdakileri geçerli giriş olarak tanır.

Giriş Kategorisi Açıklama
Ok Tuşları Denetim, denetimdeki alanlarda gezinmek ve değerleri değiştirmek için ok tuşlarını kabul eder. Kullanıcı, denetimde hareket etmek için ilgili tuşlara basabilir. Eğer kullanıcı son alanı belirli bir yönde geçmeye çalışırsa, klavye odağı denetimin karşı tarafındaki alana döner. Yukarı ve aşağı ok tuşları geçerli alandaki değerleri artımlı olarak değiştirir.
Bitiş ve Giriş Denetim, geçerli alan içindeki değeri sırasıyla üst ve alt sınırlarıyla değiştirmek için VK_END ve VK_HOME sanal anahtarları kabul eder.
İşlev Tuşları anahtar düzenleme modunu etkinleştirir. Anahtar, kontrolün aylık açılır takvim kontrolü görüntülemesini sağlar (basmak da bunu yapar).
Sayılar Denetim, iki karakterli segmentlerde sayısal girişi kabul eder. Kullanıcı tarafından girilen değer geçersizse (ayı 14 olarak ayarlamak gibi), denetim bunu reddeder ve görüntüyü önceki değere sıfırlar.
Artı ve Eksi Denetim, geçerli alandaki değeri artırmak veya azaltmak için sayısal tuş takımından VK_ADD ve VK_SUBTRACT sanal tuşlarını kabul eder.

 

DTS_UPDOWN stilini kullanmayan DTP denetimleri bir ok düğmesi görüntüler. Kullanıcı bu düğmeye tıklarsa aylık takvim denetimi açılır. Kullanıcı, takvimin bir alanına tıklayarak belirli bir tarihi seçebilir.

Tarih ve Saat Seçici Denetim Stilleri ve Biçimleri

Tarih ve saat seçici (DTP) kontrolleri, bir kontrolün görünümünü ve davranışını belirleyen birkaç Tarih ve Saat Seçici Kontrol Stili içerir. CreateWindowExdwStyle parametresiyle denetim oluştururken stili belirtin. Denetimi oluşturduktan sonra pencere stilini almak veya değiştirmek için GetWindowLongkullanın ve SetWindowLong.

Önceden Ayarlanmış Biçimler

Tarihi görüntülemek için üç ön ayar biçimi ve saati görüntülemek için bir biçim vardır. Aşağıdaki pencere stillerinden birini seçerek bu biçimleri ayarlayın.

Biçim Açıklama
DTS_LONGDATEFORMAT Ekran şöyle görünür: "19 Nisan 1996 Cuma".
DTS_SHORTDATEFORMAT Ekran şöyle görünür: "19/4/96".
DTS_SHORTDATECENTURYFORMAT Sürüm 5.80. Ekran şöyle görünür: "19/4/1996".
DTS_TIMEFORMAT Ekran şöyle görünür: "17:31:42".

 

Özel biçimler

DTP denetimi, bilgi alanlarının nasıl görüntüleneceğini belirlemek için bir biçim dizesine dayanır. Önceden ayarlanmış biçimler yeterli değilse, kendi biçim dizenizi tanımlayarak özel bir biçim oluşturabilirsiniz. Özel biçimler bir uygulama için daha fazla esneklik sağlar. Denetimin bilgi alanlarını görüntüleme sırasını belirtmenizi sağlar. Kullanıcıdan bilgi istemek için gövde metninin yanı sıra geri çağırma alanlarını da ekleyebilirsiniz. Dize oluşturulduktan sonra, DTM_SETFORMAT iletisiyle DTP denetimine atarsınız.

Dizeleri Biçimlendir

DTP biçim dizesi, belirli bir bilgi parçasını temsil eden ve görüntüleme biçimini tanımlayan bir dizi öğeden oluşur. Öğeler, biçim dizesinde göründükleri sırayla görüntülenir.

Tarih ve saat biçimi öğelerinin yerini gerçek tarih ve saat alır. Bunlar aşağıdaki karakter grupları tarafından tanımlanır.

Öğe Açıklama
"d" Bir veya iki basamaklı gün.
"dd" İki basamaklı gün. Tek basamaklı gün değerlerinin önünde sıfır bulunur.
"ddd" Üç karakterli hafta içi kısaltması.
"dddd" Haftanın gününün tam adı.
"h" 12 saatlik biçimde gösterilen bir veya iki basamaklı saatler.
hh 12 saatlik biçimdeki iki basamaklı saat. Tek basamaklı değerlerin önünde sıfır vardır.
"H" 24 saatlik formatta bir veya iki basamaklı saat.
"HH" 24 saatlik biçimde iki basamaklı saat dilimi. Tek basamaklı değerlerin önünde sıfır vardır.
"m" Bir veya iki basamaklı dakika.
"mm" İki basamaklı dakika. Tek basamaklı değerlerin önünde sıfır vardır.
"M" Bir veya iki basamaklı ay numarası.
"MM" İki basamaklı ay numarası. Tek basamaklı değerlerin önünde sıfır vardır.
"MMM" Üç karakterli ay kısaltması.
"MMMM" Ayın tam adı.
"t" AM/PM'in tek harfli kısaltması (örneğin, AM "A" olarak görüntülenir).
"tt" İki harfli AM/PM kısaltması (örneğin, AM "AM" olarak görüntülenir).
"yy" Yılın son iki basamağı (1996"96" olarak görüntülenir).
"yyyy" Yılın tamamı (yani, 1996"1996" olarak görüntülenir).

 

Bilgilerin daha okunabilir olmasını sağlamak için, biçim dizesini tek tırnak içine alarak gövde metni ekleyebilirsiniz. Boşluklar ve noktalama işaretlerinin tırnak içine alınması gerekmez.

Not düzeltmesi

Tek tırnak işaretiyle sınırlandırılmamış biçimsiz karakterler, DTP denetimi tarafından öngörülemeyen görüntüye neden olur.

Örneğin, geçerli tarihi "'Bugün: 04:22:31 Salı 23 Mart 1996" biçiminde görüntülemek için, biçim dizesi "'Bugün: 'ss':'dk':'sn dddd MMM dd', 'yyyy". Gövde metninize tek bir tırnak eklemek için iki ardışık tek tırnak kullanın. Örneğin, "'Unutma' MMM dd',' yy" şu şekilde bir çıkış üretir: 23 Mart 1996'yı unutmayın. Tırnak işaretlerinin virgüllerle kullanılması gerekmez, bu nedenle "'Unutma' MMM dd, yyyy" de geçerlidir ve aynı sonucu verir.

Geri çağırma alanları

Standart Biçim Dizeleri ve gövde metnine ek olarak, Geri Çağırma alanları olarak da ekranın belirli bölümlerini tanımlayabilirsiniz. Bu alanlar, kullanıcıyı bilgi için sorgulamak için kullanılabilir. Geri çağırma alanı bildirmek için, biçim dizesinin herhangi bir yerinde bir veya daha fazla "X" karakteri (ASCII Kod 88) ekleyin. "X" karakterini yineleyerek benzersiz bir kimliğe sahip geri çağırma alanları oluşturabilirsiniz. Bu nedenle, "XX dddd MMM dd', 'y XXX" biçim dizesi "XX" ve "XXX" adlı iki benzersiz geri çağırma alanı içerir. Diğer DTP denetim alanları gibi geri çağırma alanları da biçim dizesindeki konumlarına göre soldan sağa sırada görüntülenir.

DTP denetimi biçim dizesini ayrıştırdığında ve bir geri çağırma alanıyla karşılaştığında, DTN_FORMAT ve DTN_FORMATQUERY bildirim kodları gönderir. Geri çağırma alanına karşılık gelen biçim dizesi öğesi, alıcı uygulamanın sorgulanan geri çağırma alanını belirlemesine izin vermek için bildirimlere eklenir. Denetimin sahibi, özel bilgilerin düzgün görüntülendiğinden emin olmak için bu bildirimlere yanıt vermelidir.

Tarih ve Saat Seçici Denetimi Bildirim İletileri

Tarih ve saat seçici (DTP) denetimi, kullanıcı girişi veya işlemleri aldığında bildirim kodları gönderir ve geri çağırma alanlarına tepki gösterir. Denetimin üst öğesi bu bildirim kodlarını WM_NOTIFY iletileri biçiminde alır.

Aşağıdaki bildirim kodları DTP denetimleriyle birlikte kullanılır.

Bildirim kodu Açıklama
DTN_CLOSEUP Açılan ay takviminin kaldırılmak üzere olduğunu gösterir.
DTN_TARIHSAATDEĞİŞİKLİĞİ DTP denetiminde bir değişiklik sinyali gönderir.
DTN_DROPDOWN Açılır ay takviminin görüntülenmek üzere olduğunu gösterir.
DTN_FORMAT Metinlerin, biçim dizesinin geri çağırma alanı olarak tanımlanan bir bölümünde görüntülenmesini istemektedir.
DTN_FORMATQUERY Bir geri arama alanında görüntülenecek metnin izin verilen en büyük boyutu hakkında bilgi istemektedir.
DTN_USERSTRING Kullanıcının denetim içindeki düzenleme işleminin sona ereceğini bildirir. Bu bildirim yalnızca DTS_APPCANPARSE stilini kullanan DTP denetimleri tarafından gönderilir.
DTN_WMKEYDOWN Kullanıcının DTP denetiminin geri çağırma alanındaki bir tuşa bastığını gösterir.

 

Tarih ve Saat Seçici Kontrolü Başvuru