2015-01-20 103 views
1

今天我面临着在WINAPI中增加和减少我的updown控件的问题。在C++中增加和减少增量控件的值WINAPI

我有一个图像在我的updown控件下面。据buddied与编辑控件

screenshot

我希望这个控件是当按下箭头键1分别递增/递减。我尝试过这样的风格:UDS_ARROWKEYS,但它不起作用,导致我相信还有另一种方法来解决这个问题。

我已经写了一个片段来重现上面的图像。

HWND edit1 = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", L"250", WS_VISIBLE | WS_CHILD | ES_CENTER | ES_NUMBER... 
HWND upDown1 = CreateWindow(L"MSCTLS_UPDOWN32", L"", WS_VISIBLE | WS_CHILD | UDS_ALIGNRIGHT... 

SendMessage(upDown1, UDM_SETBUDDY, reinterpret_cast<WPARAM>(edit1), static_cast<LPARAM>(NULL)); 

回答

3

启用上下控制UDS_SETBUDDYINT风格:

Up-Down Control Styles

UDS_SETBUDDYINT
导致上下控件设置伙伴窗口的文本(使用当消息的位置发生变化时。文本由格式化为十进制或十六进制字符串的位置组成。

这个Up-Down Control Overviews文档中指出:

About Up-Down Controls

上下控件样式
...
UDS_SETBUDDYINT样式集上下控制每当当前位置发生变化时,它的伙伴窗口的标题。除非指定了UDS_NOTHOUSANDS样式,否则控件会在十进制数字的每三位数字之间插入一个千位分隔符。如果好友窗口是列表框,则上下控件将设置其当前选择而不是其标题。

您可以指定UDS_ARROWKEYS样式为上下控件提供键盘接口。如果指定了此样式,则控件将处理向上和向下箭头键。该控件还将伙伴窗口划分为子类,以便在伙伴窗口具有焦点时可以处理这些键。
...

+0

谢谢。这真的帮了我很多! – ahri 2015-01-21 02:13:18