Bagikan melalui


Tentang Kontrol Pemilih Tanggal dan Waktu

Kontrol pemilih tanggal dan waktu (DTP) menyediakan antarmuka sederhana dan intuitif untuk bertukar informasi tanggal dan waktu dengan pengguna. Misalnya, dengan kontrol DTP Anda dapat meminta pengguna untuk memasukkan tanggal dan kemudian dengan mudah mengambil pilihan.

Topik berikut dibahas:

Catatan

Windows tidak mendukung tanggal sebelum 1601. Lihat struktur FILETIME untuk detailnya.

Kontrol ini didasarkan pada kalender Gregorian, yang diperkenalkan pada tahun 1753. Ini tidak akan menghitung tanggal yang konsisten dengan kalender Julian.

Antarmuka Pengguna Pemilih Tanggal dan Waktu

Area klien kontrol pemilih tanggal dan waktu (DTP) menampilkan informasi tanggal atau waktu, atau keduanya, dan bertindak sebagai antarmuka tempat pengguna memodifikasi informasi. Tanggal dapat dipilih dari kalender, atau dengan menggunakan kontrol up-down; waktu dapat diubah dengan mengetik di bidang yang ditentukan oleh String Format kontrol. Secara opsional, kontrol menampilkan kotak centang. Ketika diperiksa, nilai dalam kontrol dapat diambil; jika tidak, kontrol dianggap tidak diinisialisasi.

Ilustrasi berikut ini memperlihatkan jendela yang berisi tiga kontrol pemilih tanggal. Kontrol pemilih tanggal pertama dibuat dengan gaya DTS_SHOWNONE, yang kedua dengan gaya DTS_UPDOWN, dan yang ketiga tanpa gaya khusus. Di kontrol ketiga, pengguna telah mengklik panah bawah untuk menampilkan kalender.

screen shot of a window that demonstrates three styles of date-picker controls

Ilustrasi berikut menunjukkan jendela dengan tiga kontrol yang berisi waktu.

Kontrol pertama telah dibuat dengan gaya DTS_TIMEFORMAT dan memperlihatkan waktu dalam waktu default, yang terdiri dari empat bidang. Pengguna dapat mengetikkan nilai yang valid di salah satu bidang ini, atau memilih bidang dan mengubah nilai dengan menggunakan tombol kontrol naik atau panah.

Kontrol kedua memperlihatkan format kustom yang diatur dengan menggunakan DateTime_SetFormat. Seperti halnya kontrol pertama, pengguna dapat mengubah bidang waktu dengan mengetik atau dengan menggunakan tombol panah. Hari dalam seminggu dapat diubah dengan memilih tanggal dari kalender yang terbuka saat pengguna mengklik panah bawah.

Kontrol ketiga menunjukkan bagaimana teks sewenang-wenang dapat ditambahkan ke kontrol. Pengguna dapat memilih satu jam (dari 1 hingga 24) dengan mengetik, dengan menggunakan tombol panah, atau dengan menggunakan kontrol naik turun.

screen shot of a window that shows three controls that contain the time

Kontrol DTP secara otomatis memperbarui informasi internal berdasarkan input pengguna. Kontrol mengenali yang berikut ini sebagai input yang valid.

Kategori Input Deskripsi
Tombol Panah Kontrol menerima tombol panah untuk menavigasi bidang dalam kontrol dan mengubah nilai. Pengguna dapat menekan tombol atau untuk berpindah melalui kontrol Jika pengguna mencoba untuk melewati bidang terakhir ke arah tertentu, fokus keyboard "membungkus" ke bidang di sisi kontrol yang berlawanan. Kunci dan mengubah nilai di bidang saat ini secara bertahap.
Akhir dan Beranda Kontrol menerima kunci virtual VK_END dan VK_HOME untuk mengubah nilai dalam bidang saat ini ke batas atas dan bawahnya.
Kunci Fungsi Kunci mengaktifkan mode edit. Tombol menyebabkan kontrol menampilkan kontrol kalender bulan drop-down (menekan juga melakukannya).
Angka Kontrol menerima input numerik dalam segmen dua karakter. Jika nilai yang dimasukkan oleh pengguna tidak valid (seperti mengatur bulan ke 14), kontrol menolaknya dan mengatur ulang tampilan ke nilai sebelumnya.
Plus dan Minus Kontrol menerima kunci virtual VK_ADD dan VK_SUBTRACT dari keypad numerik ke kenaikan dan penurunan nilai di bidang saat ini.

 

Kontrol DTP yang tidak menggunakan gaya DTS_UPDOWN menampilkan tombol panah. Jika pengguna mengklik tombol ini, kontrol kalender bulan turun bawah. Pengguna dapat memilih tanggal tertentu dengan mengklik area kalender.

Gaya dan Format Kontrol Pemilih Tanggal dan Waktu

Kontrol pemilih tanggal dan waktu (DTP) memiliki beberapa Gaya Kontrol Pemilih Tanggal dan Waktu yang menentukan tampilan dan perilaku kontrol. Tentukan gaya saat membuat kontrol dengan parameter dwStyle dari CreateWindowEx. Untuk mengambil atau mengubah gaya jendela setelah Anda membuat kontrol, gunakan GetWindowLong dan SetWindowLong.

Format Prasetel

Ada tiga format prasetel yang tersedia untuk menampilkan tanggal dan satu untuk menampilkan waktu. Atur format ini dengan memilih salah satu gaya jendela berikut.

Format Deskripsi
DTS_LONGDATEFORMAT Tampilannya akan terlihat seperti: "Jumat, 19 April 1996".
DTS_SHORTDATEFORMAT Tampilan akan terlihat seperti: "19/4/96".
DTS_SHORTDATECENTURYFORMAT Versi 5.80. Tampilan akan terlihat seperti: "19/4/1996".
DTS_TIMEFORMAT Tampilan akan terlihat seperti: "5:31:42 PM".

 

Format kustom

Kontrol DTP bergantung pada string format untuk menentukan bagaimana kontrol tersebut akan menampilkan bidang informasi. Jika format prasetel tidak memadai, Anda dapat membuat format kustom dengan menentukan string format Anda sendiri. Format kustom memberikan fleksibilitas yang lebih besar untuk aplikasi. Mereka memungkinkan Anda menentukan urutan kontrol akan menampilkan bidang informasi. Anda dapat menyertakan teks isi serta bidang panggilan balik untuk meminta informasi dari pengguna. Setelah string dibuat, Anda menetapkannya ke kontrol DTP dengan pesan DTM_SETFORMAT.

Format String

String format DTP terdiri dari serangkaian elemen yang mewakili bagian informasi tertentu dan menentukan format tampilannya. Elemen akan ditampilkan dalam urutan muncul dalam string format.

Elemen format tanggal dan waktu akan digantikan oleh tanggal dan waktu aktual. Karakter didefinisikan oleh grup karakter berikut.

Elemen Deskripsi
"h" Hari satu atau dua digit.
"dd" Hari dua digit. Nilai hari satu digit didahului dengan nol.
"ddd" Singkatan tiga karakter hari kerja.
"dddd" Nama lengkap hari kerja.
"h" Jam satu atau dua digit dalam format 12 jam.
"hh" Jam dua digit dalam format 12 jam. Nilai digit tunggal didahului dengan nol.
"H" Satu atau dua digit jam dalam format 24 jam.
"HH" Jam dua digit dalam format 24 jam. Nilai digit tunggal didahului dengan nol.
"b" Satu atau dua digit menit.
"mm" Dua digit menit. Nilai digit tunggal didahului dengan nol.
"M" Nomor bulan satu atau dua digit.
"MM" Nomor bulan dua digit. Nilai digit tunggal didahului dengan nol.
"MMM" Singkatan bulan tiga karakter.
"MMMM" Nama bulan penuh.
"t" Singkatan AM/PM satu huruf (yaitu, AM ditampilkan sebagai "A").
"tt" Singkatan AM/PM dua huruf (yaitu, AM ditampilkan sebagai "AM").
"yy" Dua digit terakhir tahun ini (yaitu, 1996 akan ditampilkan sebagai "96").
"tttt" Tahun penuh (yaitu, 1996 akan ditampilkan sebagai "1996").

 

Untuk membuat informasi lebih mudah dibaca, Anda dapat menambahkan teks isi ke string format dengan mengapitnya dalam tanda kutip tunggal. Spasi dan tanda baca tidak perlu dikutip.

Catatan

Karakter nonformat yang tidak dibatasi oleh tanda kutip tunggal akan menghasilkan tampilan yang tidak dapat diprediksi oleh kontrol DTP.

Misalnya, untuk menampilkan tanggal saat ini dengan format "'Hari ini adalah: 04:22:31 Selasa 23 Mar 1996", string format adalah "'Hari ini adalah: 'hh':'m':'s dddd MMM dd', 'yyyy". Untuk menyertakan kuotasi tunggal dalam teks isi Anda, gunakan dua tanda kutip tunggal berturut-turut. Misalnya, "'Jangan lupa' MMM dd',' yyyy" menghasilkan output yang terlihat seperti: Jangan lupa Mar 23, 1996. Tidak perlu menggunakan tanda kutip dengan koma, jadi "Jangan lupa' MMM dd, yyyy" juga valid, dan menghasilkan output yang sama.

Bidang panggilan balik

Selain Format String standar dan teks isi, Anda juga dapat menentukan bagian tertentu dari tampilan sebagai bidang Callback. Bidang ini dapat digunakan untuk mengkueri pengguna untuk informasi. Untuk mendeklarasikan bidang panggilan balik, sertakan satu atau beberapa karakter "X" (Kode ASCII 88) di mana saja dalam string format. Anda dapat membuat bidang panggilan balik yang memiliki identitas unik dengan mengulangi karakter "X". Dengan demikian, string format "XX dddd MMM dd', 'yyy XXX" berisi dua bidang panggilan balik unik, "XX" dan "XXX". Seperti bidang kontrol DTP lainnya, bidang panggilan balik ditampilkan dalam urutan kiri-ke-kanan berdasarkan lokasinya dalam string format.

Ketika kontrol DTP mengurai string format dan menemukan bidang panggilan balik, kontrol tersebut mengirim kode pemberitahuan DTN_FORMAT dan DTN_FORMATQUERY . Elemen string format yang sesuai dengan bidang panggilan balik disertakan dengan pemberitahuan untuk memungkinkan aplikasi penerima menentukan bidang panggilan balik mana yang sedang dikueri. Pemilik kontrol harus merespons pemberitahuan ini untuk memastikan bahwa informasi kustom ditampilkan dengan benar.

Pesan Pemberitahuan Kontrol Pemilih Tanggal dan Waktu

Kontrol pemilih tanggal dan waktu (DTP) mengirim kode pemberitahuan saat menerima input atau proses pengguna dan bereaksi terhadap bidang panggilan balik. Induk kontrol menerima kode pemberitahuan ini dalam bentuk pesan WM_NOTIFY.

Kode pemberitahuan berikut digunakan dengan kontrol DTP.

Kode pemberitahuan Deskripsi
DTN_CLOSEUP Menunjukkan bahwa kalender bulan drop-down akan dihapus.
DTN_DATETIMECHANGE Menandakan perubahan dalam kontrol DTP.
DTN_DROPDOWN Menunjukkan bahwa kalender bulan drop-down akan ditampilkan.
DTN_FORMAT Meminta teks untuk ditampilkan dalam sebagian string format yang dijelaskan sebagai bidang panggilan balik.
DTN_FORMATQUERY Meminta informasi tentang ukuran maksimum teks yang diizinkan untuk ditampilkan di bidang panggilan balik.
DTN_USERSTRING Memberi sinyal akhir operasi edit pengguna dalam kontrol. Pemberitahuan ini hanya dikirim oleh kontrol DTP yang menggunakan gaya DTS_APPCANPARSE.
DTN_WMKEYDOWN Memberi sinyal bahwa pengguna telah menekan tombol di bidang panggilan balik kontrol DTP.

 

Referensi Kontrol Pemilih Tanggal dan Waktu