_GUICtrlMonthCal_HitTest
Определяет, какая часть элемента календаря месяца находится в указанных координатах
#include <GuiMonthCal.au3>
_GUICtrlMonthCal_HitTest($hWnd, $iX, $iY)
Параметры
$hWnd | Дескриптор или идентификатор элемента |
$iX |
X-координата относительно клиентской области MonthCal |
$iY |
Y-координата относительно клиентской области MonthCal |
Возвращаемое значение
Успех: Возвращает структуру $tagMCHITTESTINFOСм. также
$tagMCHITTESTINFOПример
#include <GUIConstantsEx.au3>
#include <GuiMonthCal.au3>
#include <WindowsConstants.au3>
$Debug_MC = False ; Проверяет ClassName передаваемый в MonthCal функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает
Global $hMonthCal, $iMemo, $hGUI
_Main()
Func _Main()
; Создаёт GUI
$hGUI = GUICreate("HitTest элемента MonthCal", 400, 300)
$hMonthCal = GUICtrlCreateMonthCal("", 4, 4, -1, -1, $WS_BORDER, 0x00000000)
; Создаёт элемент для заметок
$iMemo = GUICtrlCreateEdit("", 4, 188, 392, 108, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Цикл выполняется, пока окно не будет закрыто
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_MOUSEMOVE
DoHitTest()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
GUIDelete()
EndFunc ;==>_Main
; Выполняет HitTest
Func DoHitTest()
Local $tHit
$tHit = _GUICtrlMonthCal_HitTest($hMonthCal, _WinAPI_GetMousePosX(True, $hGUI), _WinAPI_GetMousePosY(True, $hGUI))
If BitAND(DllStructGetData($tHit, "Hit"), $MCHT_CALENDARDATE) Then
MemoWrite("Дата: " & StringFormat("%02d/%02d/%04d", DllStructGetData($tHit, "Month"), _
DllStructGetData($tHit, "Day"), _
DllStructGetData($tHit, "Year")))
EndIf
EndFunc ;==>DoHitTest
; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite