3

我正在尝试在 WTL &/ winapi 中制作一个简单的旋转控件和编辑框。这不能正常工作,因为我只看到 0 作为初始值并且箭头不起作用,代码在这里:

HWND spin = GetDlgItem(IDC_SPIN1);
HWND edit = GetDlgItem(IDC_RANDOM_EDIT);
::SendMessage(spin, UDM_SETBUDDY, (WPARAM)edit, 0); //set buddy
::SendMessage(spin, UDM_SETRANGE, MAKELPARAM(0,100), 0); //interval

::SendMessage(spin, UDM_SETBASE, 10, 0); //initial position
4

2 回答 2

4

你的 wparam 和 lparam 颠倒了。你也有颠倒的低和高词。

::SendMessage(spin, UDM_SETRANGE, 0, MAKELPARAM(100,0)); //interval

UDM_SETRANGE请参阅和的定义MAKELPARAM

于 2013-04-03T15:34:30.667 回答
4

CUpDownCtrl在 WTL 中,您有用于上下控制的包装类。所以它就这么简单:

CUpDownCtrl Control = ... // e.g. GetDlgItem(IDC_MYCONTROL);
INT nMinValue = 0, nMaxValue = 100;
Control.SetRange(nMinValue, nMaxValue);
于 2013-04-08T20:53:43.217 回答