gpt4 book ai didi

c++ - MFC:您可以在CDateTimeCtrl中更改旋转的加速度吗?

转载 作者:行者123 更新时间:2023-12-02 10:01:36 25 4
gpt4 key购买 nike

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

现在的问题是,当我按住箭头增加或减少时,它会加速,并且我无法再检查它是否从59更改为00,反之亦然,因为增加或减少超过1',您可以从50变为10 。

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

最佳答案

您可以使用类 CDateTimeCtrl 成员函数检索GetDateTimePickerInfo()对象包含的“旋转按钮”的句柄,该函数将在返回的hwndUD结构的DATETIMEPICKERINFO成员中。

然后,您可以通过向其发送 UDM_SETACCEL 消息来有效地禁用该自旋控件的加速,其中wParam设置为1,而lParam指向 UDACCEL 结构的1元素数组;将该结构元素的加速时间(nSec)设置为一个很大的值,并且(请确保)将加速增量值(nInc)设置为“remain”(保持)为1:

    CDateTimeCtrl MyDTC;
///...
DATETIMEPICKERINFO dtInfo{};
MyDTC.GetDateTimePickerInfo(&dtInfo);
UDACCEL AccelList[1] = { {UINT_MAX, 1} };
::SendMessage(dtInfo.hwndUD, UDM_SETACCEL, 1, reinterpret_cast<LPARAM>(AccelList));

如果〜8,166年( UINT_MAX秒)的时间太短,则可以在列表中添加更多(相同)的 UDACCEL结构。 😊

您可以通过将 0作为 wParam参数传递给 SetAccel函数(以及lParam的 NULL)来将完全禁用加速,但这不是文档功能。 (值得一试吗?)

关于c++ - MFC:您可以在CDateTimeCtrl中更改旋转的加速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62329300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com