Поделиться через


Сведения о элементах управления "Выбор даты и времени"

Элемент управления выбора даты и времени (DTP) предоставляет простой и интуитивно понятный интерфейс для обмена данными о дате и времени с пользователем. Например, с элементом управления DTP можно попросить пользователя ввести дату, а затем легко получить выбор.

Рассматриваются следующие темы:

Примечание.

Windows не поддерживает даты до 1601 года. Дополнительные сведения см. в структуре FILETIME .

Элемент управления основан на григорианском календаре, который был введен в 1753 году. Она не вычисляет даты, которые соответствуют календарю Джулиана.

Пользовательский интерфейс средства выбора даты и времени

Клиентская область элемента управления выбора даты и времени (DTP) отображает сведения о дате или времени, а также выступает в качестве интерфейса, с помощью которого пользователи изменяют информацию. Дата может быть выбрана из календаря или с помощью элемента управления up-down; Время можно изменить, введя поля, определенные строками форматирования элемента управления. При необходимости элемент управления отображает поле проверка. Если оно проверка, можно получить значение элемента управления. В противном случае элемент управления считается неинициализированным.

На следующем рисунке показано окно, содержащее три элемента управления выбора дат. Первый элемент управления выбора даты и даты был создан с DTS_SHOWNONE стилем, вторым со стилем DTS_UPDOWN и третьим без специальных стилей. В третьем элементе управления пользователь щелкнул стрелку вниз, чтобы отобразить календарь.

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

На следующем рисунке показаны окна с тремя элементами управления, которые содержат время.

Первый элемент управления был создан с помощью стиля DTS_TIMEFORMAT и показывает время по умолчанию, состоящее из четырех полей. Пользователь может ввести допустимое значение в любом из этих полей или выбрать поле и изменить его с помощью клавиш управления вверх вниз или со стрелками.

Второй элемент управления показывает настраиваемый набор форматов с помощью DateTime_SetFormat. Как и при первом элементе управления, пользователь может изменить поля времени, введя или используя клавиши со стрелками. День недели можно изменить, выбрав дату из календаря, который открывается, когда пользователь щелкает стрелку вниз.

Третий элемент управления показывает, как произвольный текст можно добавить в элемент управления. Пользователь может выбрать час (от 1 до 24), введя клавиши со стрелками или используя элемент управления вверх вниз.

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

Элемент управления DTP автоматически обновляет внутреннюю информацию на основе входных данных пользователя. Элемент управления распознает указанные ниже данные как допустимые входные данные.

Категория входных данных Description
Клавиши со стрелками Элемент управления принимает клавиши со стрелками, чтобы перемещать поля в элементе управления и изменять значения. Пользователь может нажимать или нажимать клавиши для перемещения по элементу управления, если пользователь пытается перейти к последнему полю в заданном направлении, фокус клавиатуры "обертывается" к полю на противоположной стороне элемента управления. Значения и ключи изменяются в текущем поле постепенно.
Конец и главная Элемент управления принимает VK_END и VK_HOME виртуальные ключи, чтобы изменить значение в текущем поле на его верхние и нижние пределы соответственно.
Ключи функций Ключ активирует режим редактирования. Ключ приводит к отображению раскрывающегося элемента управления календаря месяца (нажатие этого также).
Числа Элемент управления принимает числовые входные данные в двухзначных сегментах. Если введенное пользователем значение недопустимо (например, установка месяца на 14), элемент управления отклоняет его и сбрасывает отображение до предыдущего значения.
Плюс и минус Элемент управления принимает VK_ADD и VK_SUBTRACT виртуальные ключи из числовой клавиатуры для увеличения и уменьшения значения в текущем поле.

 

Элементы управления DTP, не использующие стиль DTS_UPDOWN , отображают кнопку со стрелкой. Если пользователь нажимает эту кнопку, элемент управления календаря месяца отпадает. Пользователь может выбрать определенную дату, щелкнув область календаря.

Стили и форматы элементов управления "Выбор даты и времени"

Элементы управления выбора даты и времени (DTP) имеют несколько стилей элементов управления "Выбор даты и времени", определяющих внешний вид и поведение элемента управления. Укажите стиль при создании элемента управления с параметром dwStyle CreateWindowEx. Чтобы получить или изменить стиль окна после создания элемента управления, используйте GetWindowLong и SetWindowLong.

Предустановленные форматы

Существует три предустановленных формата для отображения даты и одного для отображения времени. Задайте эти форматы, выбрав один из следующих стилей окна.

Формат Description
DTS_LONGDATEFORMAT Отображение будет выглядеть следующим образом: "Пятница, 19 апреля 1996 года".
DTS_SHORTDATEFORMAT Отображение будет выглядеть следующим образом: "4.19.96".
DTS_SHORTDATECENTURYFORMAT Версия 5.80. Отображение будет выглядеть следующим образом: "4.19.1996".
DTS_TIMEFORMAT Отображение будет выглядеть следующим образом: "5:31:42 ВЕЧЕРА".

 

Настраиваемые форматы

Элемент управления DTP использует строку формата, чтобы определить способ отображения полей информации. Если предустановленные форматы недостаточно, можно создать пользовательский формат, определив собственную строку формата. Пользовательские форматы обеспечивают большую гибкость для приложения. Они позволяют указать порядок отображения полей информации элементом управления. Вы можете включить текст текста, а также поля обратного вызова для запроса сведений от пользователя. После создания строки ее назначьте элементу управления DTP с сообщением DTM_SETFORMAT .

Строки формата

Строка формата DTP состоит из ряда элементов, представляющих определенную часть информации и определяющую его формат отображения. Элементы будут отображаться в том порядке, в котором они отображаются в строке формата.

Элементы формата даты и времени будут заменены фактическими датами и временем. Они определяются следующими группами символов.

Элемент Description
"d" Одно-или двухзначный день.
"dd" Двухзначный день. Однозначные значения дня предшествуют нулю.
"ddd" Трехзначное сокращение буднего дня.
"dddd" Полное имя дня недели.
"h" Одно-или двухзначный час в формате 12-часового формата.
"чч" Двухзначный час в формате 12-часового формата. Однозначные значения предшествуют нулю.
"H" Один или двухзначный час в 24-часовом формате.
"HH" Двухзначный час в 24-часовом формате. Однозначные значения предшествуют нулю.
"m" Одна или две цифры минуты.
"mm" Двухзначная минута. Однозначные значения предшествуют нулю.
"M" Номер одного или двухзначного месяца.
"MM" Двухзначный номер месяца. Однозначные значения предшествуют нулю.
"MMM" Трехзначное сокращение месяца.
"MMMM" Полное имя месяца.
"t" Однобуквенное сокращение AM/PM (т. е. am отображается как "A").
"tt" Двухбуквенное сокращение AM/PM (т. е. am отображается как "AM").
"yy" Последние две цифры года (т. е. 1996 будут отображаться как "96").
"yyyy" Полный год (т. е. 1996 год будет отображаться как "1996").

 

Чтобы сделать информацию более читаемой, можно добавить текст текста в строку форматирования, заключив ее в одинарные кавычки. Пробелы и знаки препинания не должны быть кавычек.

Примечание.

Символы, не разделенные одними кавычками, могут привести к непредсказуемому отображению элемента управления DTP.

Например, чтобы отобразить текущую дату с форматом "Сегодня: 04:22:31 вторник 23 марта 1996 года", строка формата — "Сегодня: "hh':'m's ddd MMM dd", "гггг". Чтобы включить одну кавычку в текст текста, используйте две последовательные одинарные кавычки. Например, "Не забывайте" MMM dd', 'гггг" создает выходные данные, которые выглядят следующим образом: Не забывайте 23 марта 1996 года. Не обязательно использовать кавычки с запятой, поэтому "Не забывайте" MMM dd, yy" также является допустимым и создает те же выходные данные.

Поля обратного вызова

Помимо стандартных строк форматирования и текста текста, можно также определить определенные части отображения как поля обратного вызова. Эти поля можно использовать для запроса пользователя для получения сведений. Чтобы объявить поле обратного вызова, добавьте один или несколько символов X (ASCII Code 88) в строку форматирования. Вы можете создать поля обратного вызова с уникальным удостоверением, повторяя символ X. Таким образом, строка формата "XX dddd MMM dd", "yyyy XXX" содержит два уникальных поля обратного вызова, "XX" и "XXX". Как и другие поля элемента управления DTP, поля обратного вызова отображаются в левом порядке вправо на основе их расположения в строке форматирования.

Когда элемент управления DTP анализирует строку форматирования и обнаруживает поле обратного вызова, он отправляет DTN_FORMAT и коды уведомлений DTN_FORMATQUERY . Элемент строки формата, соответствующий полю обратного вызова, включается в уведомления, чтобы разрешить принимающему приложению определить, какое поле обратного вызова запрашивается. Владелец элемента управления должен отвечать на эти уведомления, чтобы убедиться, что пользовательская информация отображается правильно.

Сообщения уведомлений средства выбора даты и времени

Элемент управления выбора даты и времени (DTP) отправляет коды уведомлений при получении пользовательских входных данных или процессов и реагирования на поля обратного вызова. Родительский элемент управления получает эти коды уведомлений в виде WM_NOTIFY сообщений.

Следующие коды уведомлений используются с элементами управления DTP.

Код уведомления Description
DTN_CLOSEUP Указывает, что раскрывающийся календарь месяца будет удален.
DTN_DATETIMECHANGE Сигнализирует об изменении элемента управления DTP.
DTN_DROPDOWN Указывает, что раскрывающийся календарь месяца будет отображаться.
DTN_FORMAT Запрашивает текст для отображения в части строки форматирования, описанной как поле обратного вызова.
DTN_FORMATQUERY Запрашивает сведения о максимально допустимом размере текста, отображаемого в поле обратного вызова.
DTN_USERSTRING Сигнализирует об окончании операции редактирования пользователя в элементе управления. Это уведомление отправляется только элементами управления DTP, которые используют стиль DTS_APPCANPARSE.
DTN_WMKEYDOWN Сигнализирует о том, что пользователь нажал клавишу в поле обратного вызова элемента управления DTP.

 

Справочник по элементу управления "Выбор даты и времени"