MFC:你能在CDateTimeCtrl中改变自旋的加速度吗?
MFC: Can you change the acceleration of the spin in a CDateTimeCtrl?
我正在使用VS-2015,我正在尝试扩展CDateTimeCtrl
以检测它何时超过59'并相应地更改小时。
现在的问题是,当我按住箭头递增或递减时,它会加速,我无法再检查它是否从 59 更改为 00,反之亦然,因为增加或减少超过 1' 你可以从 50 到 10。
我知道CEdit
+CSpinButtonCtrl
但我想知道是否可以将加速度更改为仅一分钟。
您可以使用类GetDateTimePickerInfo()
成员函数检索CDateTimeCtrl
对象包含的"旋转按钮"的句柄,该函数将位于返回的DATETIMEPICKERINFO
结构的hwndUD
成员中。
然后,您可以通过向该旋转控制发送UDM_SETACCEL
消息来有效地禁用该旋转控制的加速,wParam
设置为1
,lParam
指向UDACCEL
结构的 1 元素数组;将该结构元素的加速时间 (nSec
( 设置为一个非常大的值,并且(只是为了确定(将加速增量值 (nInc
( 设置为 "keep" at 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
(来完全禁用加速。这没有记录,如果您尝试这样做,UDM_SETACCEL
消息(以及 MFC 包装器函数,SetAccel
(将返回FALSE
,指示错误。
相关文章:
- 变量没有改变?通过向量的函数调用
- 如何改变c++应用程序的视觉效果
- C++在不同线程中改变向量
- 如何访问和改变存储在矢量C++中的对象
- 在C++行尾写一个分号或多个分号是否会改变任何内容
- 为什么字符串的 move() 会改变内存中底层数据的位置?
- 为什么 c++ 动态数组的大小没有改变?
- 为什么提升图库的 read_graphviz() 函数会改变节点的索引
- 在向量内更改变量的值不会改变其在向量外的值
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- 改变或缩放两个正态分布以具有特定的相关系数
- 当我使用CHAR_INFO结构时,控制台会无缘无故地改变颜色
- 为什么我的函数接受"std::string"进行排序不会改变它?
- MFC:你能在CDateTimeCtrl中改变自旋的加速度吗?
- 为什么切换 for 循环的顺序会显著改变执行时间?
- 使用可变参数模板改变模板参数
- 如何获取加速度值?
- C++中物体改变识别的设计模式?
- 通过从构造函数中的'this'复制的指针改变常量对象
- C++11:具有互斥锁的线程看到原子变量的值发生变化,尽管这是唯一可以改变它的代码