使用日历控件MonthCalendar选择日期时,如何知道鼠标点的是日期还是上边变换月份的小按钮

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

------解决方案--------------------
使用日历控件MonthCalendar选择日期时,如何知道鼠标点的是日期还是上边变换月份的小按钮
------解决方案--------------------
不如说说你想干什么,是想知道当前选择的月份是否变化还是怎样?
------解决方案--------------------
引用:
目的:单击日期就将日期放到Edit中,并关闭MonthCalendar。
点两个小按钮就翻页换月份,不关闭MonthCalendar。


改用DateTimePicker吧
------解决方案--------------------
引用:
我想用MonthCalendar做个有点特色的东西,我们用的软件中到处能看到。DateTimePicker太平常,并且它的哪个显示框还不能清空。
MonthCalendar中的星期一、星期二怎么变成一、二?


没办法了,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