Мне нужно использовать элемент управления Date and Time Picker
для моего графического интерфейса. Чтобы сохранить пространство, я вынужден использовать стиль DTS_SHOWNONE
.
Назначение флажка, в моем случае, было бы указать, был ли подписан контракт или нет. Это просто → введите дату, когда вы встретились с клиентом, и если контракт был подписан, просто установите флажок.
К сожалению, механика по умолчанию этого элемента управления не работает таким образом, и не существует встроенной механики, которую я мог бы использовать для решения моей проблемы (по крайней мере, я не знаю).
Вот что я попытался решить самостоятельно:
Я приведу раздел "Примечания":
Элементы управления DTP не поддерживают статический дочерний календарь месяца. Элемент управления DTP создает новый элемент управления календарным месяцем перед отправкой этого кода уведомления. Кроме того, управление DTP уничтожает дочерний элемент управления, когда он не активен (видим). Поэтому ваше приложение не должно полагаться на статический дескриптор окна в календарь дочернего месяца управления.
Я нашел то же самое для управления редактированием ->, когда больше не требуется, чтобы он был уничтожен.
Я попробовал выборку выбора подкласса для прослушивания сообщения WM_LBUTTONDOWN
, но не смог получить дескриптор этого флажка. По моему мнению, он вставляется в combobox вместо созданного в виде отдельного окна.
Затем я использовал SPy++, чтобы наблюдать за поведением элемента управления, но не нашел ничего полезного.
Мне кажется, что у меня нет способа получить желаемое поведение путем подклассификации элемента управления dtae или использования существующих API.
Может ли кто-нибудь, кто знает, как это сделать, покажет мне дорогу?
Если это невозможно, есть ли наоборот?
Что-то вроде удаления стиля DTS_SHOWNONE
, изменения управления редактированием с помощью ES_CENTER
а затем создания дочернего флажка слева (так что я могу обработать WM_COMMAND
для флажка в процедуре подкласса)? Это просто мысль...
Спасибо. С наилучшими пожеланиями.
Если у вас есть место для показа DTP с установленным собственным флажком, у вас есть место, чтобы отключить этот флажок и изменить размер одного края DTP, чтобы освободить место для отдельного элемента управления флажком, например:
Затем вы можете сделать все, что захотите, с этим флажком.