Функция _GUICtrlMonthCal_HitTest

         Описание функции


_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