C++ 上下控制不';t在好友窗口中显示其位置

C++ 上下控制不';t在好友窗口中显示其位置,c++,winapi,win32gui,updown,C++,Winapi,Win32gui,Updown,我通过以下代码创建了一个 HWND hEdit, hUpDown; hEdit = CreateWindowExW(WS_EX_CLIENTEDGE, L"EDIT", Content.c_str(), ES_LEFT | WS_VISIBLE | WS_CHILD, 600,

我通过以下代码创建了一个

HWND hEdit, hUpDown;

hEdit = CreateWindowExW(WS_EX_CLIENTEDGE,
                        L"EDIT",
                        Content.c_str(),
                        ES_LEFT | WS_VISIBLE | WS_CHILD,
                        600,
                        260,
                        100,
                        25,
                        hWndParent,
                        NULL,
                        hInstance,
                        NULL);

INITCOMMONCONTROLSEX iccx;
iccx.dwSize = sizeof(INITCOMMONCONTROLSEX);
iccx.dwICC  = ICC_UPDOWN_CLASS;
InitCommonControlsEx(&iccx);

hUpDown = CreateWindowExW(  0,
                            UPDOWN_CLASSW,
                            L"",
                            UDS_ARROWKEYS | UDS_ALIGNRIGHT | WS_VISIBLE | WS_CHILD,
                            0,
                            0,
                            0,
                            0,
                            hWndParent,
                            NULL,
                            hInstance,
                            NULL);

SendMessageW(hUpDown, UDM_SETBUDDY,   (WPARAM) hEdit, (LPARAM) NULL);
SendMessageW(hUpDown, UDM_SETRANGE32, (WPARAM) 0,     (LPARAM) 100);
Sleep(5000);
SendMessageW(hUpDown, UDM_SETPOS32,   (WPARAM) NULL,  (LPARAM) 20);
Sleep(5000);
SendMessageW(hUpDown, UDM_SETPOS32,   (WPARAM) NULL,  (LPARAM) 60);
我检查了
SendMessageW()
函数的返回值。它们通过返回上一个位置值成功终止

创建的上下控件看起来正常:

问题是,发送
UDM_SETPOS32
消息,单击上下箭头并按键盘上的上下键无效。如果不直接在编辑控件(上下控件的好友窗口)中键入内容,我无法更改该控件的内容。它只是空着

我可以使用键盘手动键入任何内容:


如何通过按键盘箭头键、单击GUI中的箭头以及在代码中发送
UDM_SETPOS32
来更改此上下控件的位置/值?我的代码中缺少了什么?

在创建时将样式
UDS\u SETBUDDYINT
用于上下控件

发件人:

UDS\u SETBUDDYINT

当位置改变时,使上下控件设置好友窗口的文本(使用
WM_SETTEXT
消息)。文本由格式为十进制或十六进制字符串的位置组成

通过添加
UDS\u SETBUDDYINT
样式更改上下控件的创建代码,如下所示:

hUpDown = CreateWindowExW(  0,
                            UPDOWN_CLASSW,
                            L"",
                            UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_ALIGNRIGHT | WS_VISIBLE | WS_CHILD,
                            0,
                            0,
                            0,
                            0,
                            hWndParent,
                            NULL,
                            hInstance,
                            NULL);

就在我提出问题之前,我找到了解决办法。所以我也发布了答案。这个问题没有使用第三方库,我建议从这个问题中删除标签,我会删除它,但不建议用户建议编辑标签。