2013-04-03 86 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