Function Reference

_GUICtrlMonthCal_HitTest

指定された点がカレンダーコントロール上のどの部分かを判定します。

#Include <GuiMonthCal.au3>
_GUICtrlMonthCal_HitTest($hWnd, $iX, $iY)

 

パラメータ

$hWnd コントロールのハンドル
$iX テストするX座標
$iY テストするY座標

 

返し値

成功: $tagMCHITTESTINFO構造体

 

注意

なし。

 

関連

$tagMCHITTESTINFO

 


#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiMonthCal.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

$Debug_MC = False ; MonthCal関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用

Global $hMonthCal, $iMemo, $hGUI

_Main()

Func _Main()

    ; GUIを作成
    $hGUI = GUICreate("Month Calendar Hit Test", 400, 300)
    $hMonthCal = GUICtrlCreateMonthCal("", 4, 4, -1, -1, $WS_BORDER, 0x00000000)
   
    ; メモコントロールを作成
    $iMemo = GUICtrlCreateEdit("", 4, 168, 392, 128, $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

; ヒットテストをおこなう
Func DoHitTest()
    Local $tHit

    $tHit = _GUICtrlMonthCal_HitTest($hMonthCal, _WinAPI_GetMousePosX(True, $hGUI), _WinAPI_GetMousePosY(True, $hGUI))
    If BitAND(DllStructGetData($tHit, "Hit"), $MCHT_CALENDARDATE) <> 0 Then
        MemoWrite("Date: " & 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