我正在尝试在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
答案 0 :(得分:4)
你的wparam和lparam被逆转了。你也有低位和高位的话。
::SendMessage(spin, UDM_SETRANGE, 0, MAKELPARAM(100,0)); //interval
请参阅UDM_SETRANGE
和MAKELPARAM
的定义。
答案 1 :(得分:4)
在WTL中,您有用于向上控制的包装器类CUpDownCtrl
。所以它就这么简单:
CUpDownCtrl Control = ... // e.g. GetDlgItem(IDC_MYCONTROL);
INT nMinValue = 0, nMaxValue = 100;
Control.SetRange(nMinValue, nMaxValue);