以下是 MonthCal_SetRange 函数的一般格式:
BOOL MonthCal_SetRange(HWND hwnd, const SYSTEMTIME *pMinRange, const SYSTEMTIME *pMaxRange);
参数说明:
- hwnd:月历控件的句柄。
- pMinRange:指向 SYSTEMTIME 结构的指针,表示最小日期范围。
- pMaxRange:指向 SYSTEMTIME 结构的指针,表示最大日期范围。
函数返回值:
- 如果函数调用成功,返回值为 TRUE。
- 如果函数调用失败,返回值为 FALSE。要获取更多错误信息,可以调用 GetLastError 函数。
使用示例:
#include <windows.h>
#include <commctrl.h>
int main() {
// 初始化公共控件
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_DATE_CLASSES; // 启用日期控件相关的类
InitCommonControlsEx(&icex);
// 创建主窗口
HWND hwnd = CreateWindowEx(0, "SysMonthCal32", NULL, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, NULL, NULL, GetModuleHandle(NULL), NULL);
if (hwnd == NULL) {
MessageBox(NULL, "窗口创建失败!", "错误", MB_ICONERROR);
return 1;
}
// 设置月历控件的日期范围
SYSTEMTIME minRange, maxRange;
minRange.wYear = 2022;
minRange.wMonth = 1;
minRange.wDay = 1;
maxRange.wYear = 2024;
maxRange.wMonth = 12;
maxRange.wDay = 31;
MonthCal_SetRange(hwnd, &minRange, &maxRange);
// 显示窗口
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
这个示例代码创建了一个窗口,其中包含一个月历控件,并设置了该月历控件的日期范围为从 2022 年 1 月 1 日到 2024 年 12 月 31 日。请注意,为了使用 SysMonthCal32 类,需要先调用 InitCommonControlsEx 函数启用相关的控件类。
转载请注明出处:http://www.zyzy.cn/article/detail/24789/Win32 API/Commctrl.h/MonthCal_SetRange