_GUICtrlDTP_GetMonthCal
Возвращает дескриптор дочернего элемента - календаря месяца
#include <GuiDateTimePicker.au3>
_GUICtrlDTP_GetMonthCal($hWnd)
Параметры
$hWnd | Дескриптор элемента |
Возвращаемое значение
Успех: | Возвращает дескриптор календаря месяца |
Ошибка: | Возвращает 0 |
Примечания
Элемент DTP создаёт дочерний элемент - календарь месяца, когда пользователь кликает на стрелку вниз для раскрытия (уведомление $DTN_DROPDOWN). Когда календарь месяца больше не нужен, он будет уничтожается (уведомление $DTN_CLOSEUP отправляется для уничтожения). Поэтому приложение не должно полагаться на статический дескриптор календаря месяца дочернего элемента DTP.Пример
#include <GUIConstantsEx.au3>
#include <GuiDateTimePicker.au3>
$Debug_DTP = False ; Проверяет ClassName передаваемый в DTP функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает
_Main()
Func _Main()
Local $hGui, $hDTP, $iMemo, $hChild
; Создаёт GUI
$hGui = GUICreate("Получает дескриптор дочернего элемента - календаря", 400, 300)
$hDTP = _GUICtrlDTP_Create($hGui, 2, 6, 190)
$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 266, 0)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Устанавливает формат строки
_GUICtrlDTP_SetFormat($hDTP, "ddd MMM dd, yyyy hh:mm ttt")
; Получает дескриптор дочернего элемента - календаря
; К сожалению этот дескриптор можно получить только при развёрнутом календаре
$hChild = _GUICtrlDTP_GetMonthCal($hDTP)
GUICtrlSetData($iMemo, _
"Дескриптор дочернего календаря: " & "0x" & Hex($hChild) & @CRLF & _
"IsPtr=" & IsPtr($hChild) & @crlf & "ishwnd=" & IsHWnd($hChild) & @CRLF)
; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main