int MonthCal_HitTest(HWND hMonthCal, PMCHITTESTINFO pinfo);
参数:
- hMonthCal:要查询的月历控件的句柄。
- pinfo:指向 MCHITTESTINFO 结构的指针,该结构包含了待查询的点的坐标及其他信息。
typedef struct tagMCHITTESTINFO {
POINT pt;
UINT uHit;
SYSTEMTIME st;
} MCHITTESTINFO, *PMCHITTESTINFO;
MCHITTESTINFO 结构包含以下字段:
- pt:指定要查询的点的坐标。
- uHit:返回值,指示命中的区域。可能的值包括:
- MCHT_TITLE:标题区域
- MCHT_CALENDAR:日期区域
- MCHT_TODAYLINK:"今天" 链接区域
- MCHT_NEXT:下一月按钮
- MCHT_PREV:上一月按钮
- MCHT_NOWHERE:没有命中任何区域
- st:返回值,如果 uHit 是 MCHT_CALENDAR,则包含了命中的日期。
返回值:
- 如果函数成功,返回值为 uHit 字段的值。
- 如果函数失败,返回值为 MCHT_NOWHERE。
使用示例:
#include <Commctrl.h>
// ...
HWND hMonthCal = CreateWindowEx(0, MONTHCAL_CLASS, NULL,
WS_BORDER | WS_CHILD | WS_VISIBLE,
10, 10, 200, 200,
hwndParent, (HMENU)ID_MONTHCAL, hInstance, NULL);
if (hMonthCal != NULL) {
POINT hitPoint = {50, 50}; // 待查询的点的坐标
MCHITTESTINFO hitTestInfo = {0};
hitTestInfo.pt = hitPoint;
// 查询指定点的信息
int hitResult = MonthCal_HitTest(hMonthCal, &hitTestInfo);
if (hitResult != MCHT_NOWHERE) {
// 使用 hitTestInfo 进行进一步的操作
} else {
// 处理查询失败的情况
}
}
请确保在使用此函数之前,你已经正确初始化了 Common Controls(通过调用 InitCommonControlsEx 函数)。
转载请注明出处:http://www.zyzy.cn/article/detail/24783/Win32 API/Commctrl.h/MonthCal_HitTest