MFC 中的自定义滑块控件 (visual studio)

Custom slider control in MFC (visual studio)

我正在 MFC 中 visual studio 中制作一个滑块控件,我想将范围设置为 14 到 100,步长应为 0.25,如 14.25、14.50、14.75。

如何制作自定义滑块控件?

CSliderCtrl wraps a trackbar control. As such, the former shares the same limitations with the latter. Specifically, the range is set through the TBM_SETRANGE message (or the TBM_SETRANGEMIN and TBM_SETRANGEMAX 条消息)。任何一条消息都采用整数值,因此您不能让控件对小数值进行操作。

如果您需要控件支持的整数值来表示分数值,则必须在客户端代码中执行映射(缩放和平移)。可能的映射是:

  • 设置范围从0 * 4(100 - 14) * 4(即0344)。控件位置x表示值14 + x / 4.
  • 设置范围从14 * 4100 * 4(即56400)。控制位置 x 然后表示值 x / 4.

一般情况下,使用浮点值无法准确表示小数值。然而,在这种情况下,准确性没有损失;任何整数值除以 2 的幂(例如 4)都可以用浮点值准确表示(只要结果仍在范围内)。