如何获得数字updown控件?

How to get numeric updown control?

我在工具箱和许多工具箱中搜索过 post 但不知道在哪里可以找到这种类型的控件以在 MFC 上使用:

MFC中有这样的控件吗?

该控件在 Visual Studio 资源编辑器中称为“旋转控件”,它们通常与“伙伴”编辑控件相关联。您可以在其“属性”window 的“行为”组中进行设置 – 将“Auto Buddy”设置为“True”,它将与 'nearest' 编辑控件关联(实际上,前一个控件Z 顺序)。您可能还希望将“Set Buddy Integer”设置为“True”。

有许多与此类控件关联的例程(例如 set/get 范围和位置的例程),并且行为封装在 CSpinButtonCtrl class 中,其中有是 good overview here.


如果您更喜欢手动 edit/create 您的资源脚本,那么您将需要 msctls_updown32 class 的控件,应在伙伴编辑 window,如下代码摘录:

IDP_OPTMD   DIALOGEX    0, 0, 262, 180
STYLE       WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_CAPTION
CAPTION     L"Dilation/Skeletonisation"
FONT        10, P_GUIFONT
{
    GROUPBOX        L"Pixel Dilation Options",      IDC_DILPG,   10,  6, 247, 99,   BS_GROUPBOX | SS_NOTIFY
    AUTOCHECKBOX    L"Enable advanced options dialogue box?",   IDC_DILEO,   17, 17, 160, 11,   BS_AUTOCHECKBOX
    LTEXT           L"Cycles =",                    IDC_DCYCS|0x8000,   190, 18, 30, 11,        SS_NOTIFY
    EDITTEXT        IDC_DCYCS,                      221, 17, 28, 12,    ES_CENTER | ES_NUMBER,  WS_EX_CLIENTEDGE
    CONTROL         1,  IDC_DCYUD,  L"msctls_updown32", UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |UDS_ARROWKEYS
                    | UDS_NOTHOUSANDS,  241, 17, 12, 10
    //...