C++ MFC:你能改变CDATETIMECRL中旋转的加速度吗?

C++ MFC:你能改变CDATETIMECRL中旋转的加速度吗?,c++,visual-c++,datepicker,mfc,C++,Visual C++,Datepicker,Mfc,我正在使用VS-2015,我正在尝试扩展CDateTimeCtrl以检测何时超过59',并相应地更改小时数 现在的问题是,当我按住箭头以递增或递减时,它会加速,我无法再检查它是否从59变为00,或者反之亦然,因为在大于1'的范围内递增或递减可以从50变为10 我知道CEdit+CsinButtonCtrl但我想知道是否可以将加速度更改为一分钟一次。您可以使用类成员函数检索CDateTimeCtrl对象包含的“旋转按钮”的句柄,它将位于返回的DATETIMEPICKERINFO结构的hwdud成员

我正在使用VS-2015,我正在尝试扩展
CDateTimeCtrl
以检测何时超过59',并相应地更改小时数

现在的问题是,当我按住箭头以递增或递减时,它会加速,我无法再检查它是否从59变为00,或者反之亦然,因为在大于1'的范围内递增或递减可以从50变为10


我知道CEdit+
CsinButtonCtrl
但我想知道是否可以将加速度更改为一分钟一次。

您可以使用类成员函数检索
CDateTimeCtrl
对象包含的“旋转按钮”的句柄,它将位于返回的
DATETIMEPICKERINFO
结构的
hwdud
成员中

然后,通过将
wParam
设置为
1
并且
lParam
指向一个单元素结构数组,可以有效地禁用该自旋控件的加速;将该结构元素的加速时间(
nSec
)设置为一个非常大的值,并(为了确保)将加速增量值(
nInc
)设置为“保持”为1:

CDateTimeCtrl MyDTC;
///...
DATETIMEPICKERINFO dtInfo{};
MyDTC.GetDateTimePickerInfo(&dtInfo);
UDACCEL AccelList[1]={{UINT_MAX,1}};
::SendMessage(dtInfo.hwdud,UDM_SETACCEL,1,重新解释(AccelList));
如果~8166年(
UINT_MAX
seconds)时间太短,您可以在列表中添加更多(相同的)
UDACCEL
结构。