2013-04-03 57 views
3

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

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

你有你的wParam和lParam逆转。你也有低位和高位的话翻转。

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

UDM_SETRANGEMAKELPARAM的定义。

+0

Bravo!你是对的。 – AlexandruC

4

在WTL中,您可以使用包装类CUpDownCtrl进行上下控制。所以它如此简单:

CUpDownCtrl Control = ... // e.g. GetDlgItem(IDC_MYCONTROL); 
INT nMinValue = 0, nMaxValue = 100; 
Control.SetRange(nMinValue, nMaxValue); 
+1

很高兴知道,谢谢! – AlexandruC