使用日历控件MonthCalendar选择日期时,如何知道鼠标点的是日期还是上边变换月份的小按钮
使用日历控件MonthCalendar选择日期时,怎么知道鼠标点的是日期还是上边变换月份的小按钮?
使用日历控件MonthCalendar选择日期时,怎么知道鼠标点的是日期还是上边变换月份的小按钮?
请大虾指点,谢谢!!!
------解决方案--------------------

------解决方案--------------------
不如说说你想干什么,是想知道当前选择的月份是否变化还是怎样?
------解决方案--------------------
改用DateTimePicker吧
------解决方案--------------------
没办法了,MonthCalendar是调用操作系统定义的类SysMonthCal32创建的控件,他的字体和重画都是系统后台在出处理,只提供了几个消息接口给外界设置他的一些属性,Delphi没法处理他的重画事件;
消息接口你可以参考CommCtrl单元下的几个函数,我看过了,没有设置你想要的功能的接口。
使用日历控件MonthCalendar选择日期时,怎么知道鼠标点的是日期还是上边变换月份的小按钮?
请大虾指点,谢谢!!!
------解决方案--------------------
------解决方案--------------------
不如说说你想干什么,是想知道当前选择的月份是否变化还是怎样?
------解决方案--------------------
改用DateTimePicker吧
------解决方案--------------------
没办法了,MonthCalendar是调用操作系统定义的类SysMonthCal32创建的控件,他的字体和重画都是系统后台在出处理,只提供了几个消息接口给外界设置他的一些属性,Delphi没法处理他的重画事件;
消息接口你可以参考CommCtrl单元下的几个函数,我看过了,没有设置你想要的功能的接口。
// returns FALSE if MCS_MULTISELECT
// returns TRUE and sets *pst to the currently selected date otherwise
{$EXTERNALSYM MonthCal_GetCurSel}
function MonthCal_GetCurSel(hmc: HWND; var pst: TSystemTime): BOOL;
// returns FALSE if MCS_MULTISELECT
// returns TURE and sets the currently selected date to *pst otherwise
{$EXTERNALSYM MonthCal_SetCurSel}
function MonthCal_SetCurSel(hmc: HWND; const pst: TSystemTime): BOOL;
// returns the maximum number of selectable days allowed
{$EXTERNALSYM MonthCal_GetMaxSelCount}
function MonthCal_GetMaxSelCount(hmc: HWND): DWORD;
// sets the max number days that can be selected iff MCS_MULTISELECT
{$EXTERNALSYM MonthCal_SetMaxSelCount}
function MonthCal_SetMaxSelCount(hmc: HWND; n: UINT): BOOL;
// sets rgst[0] to the first day of the selection range
// sets rgst[1] to the last day of the selection range