【发布时间】:2021-06-02 14:54:01
【问题描述】:
我在工具箱和许多帖子中搜索过,但不知道在哪里可以找到在 MFC 上使用的此类控件:
MFC中是否存在这样的控件?
【问题讨论】:
-
有关自旋控制和 deltapos 事件处理程序的相关答案:stackoverflow.com/questions/51386817/… 您可能会发现有用。
-
谢谢大家,这些信息对我帮助很大。
我在工具箱和许多帖子中搜索过,但不知道在哪里可以找到在 MFC 上使用的此类控件:
MFC中是否存在这样的控件?
【问题讨论】:
该控件在 Visual Studio 资源编辑器中称为“旋转控件”,它们通常与“好友”编辑控件相关联。您可以在其“属性”窗口的“行为”组中进行设置 - 将“自动好友”设置为“真”,它将与“最近”编辑控件相关联(实际上是 Z 顺序中的前一个控件) .您可能还希望将“Set Buddy Integer”设置为“True”。
有许多与此类控件相关的例程(例如设置/获取范围和位置的例程),并且行为被封装在CSpinButtonCtrl 类中,其中有一个good overview here。
如果您更喜欢手动编辑/创建资源脚本,那么您将需要对 msctls_updown32 类的控件,该控件应立即添加到好友编辑窗口之后,如以下代码摘录所示:
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
//...
【讨论】: