如何让CSpinButtonCtrl自动吸附到CEdit右侧?
要让旋转控件自动定位到伙伴编辑框右侧,核心是利用系统提供的控件样式和原生机制,具体操作如下:
- 设置关键控件样式:给旋转控件添加
UDS_ALIGNRIGHT样式,该样式会让控件自动对齐到伙伴窗口的右侧。同时保留已设置的UDS_AUTOBUDDY(自动伙伴)和UDS_SETBUDDYINT(整数递增模式)样式。 - 资源编辑器创建场景:
- 先添加编辑框,再添加旋转控件(确保编辑框的Tab顺序在旋转控件之前)。
- 选中旋转控件,在属性窗口勾选「自动伙伴」「设置伙伴整数」「右对齐」选项,对应就是启用上述三个关键样式。
- 动态创建场景:
在调用Create方法时,将UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT作为样式参数传入,可配合SetBuddy手动指定伙伴编辑框,示例代码:// 假设已有编辑框对象m_edit CSpinButtonCtrl m_spin; m_spin.Create(UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT, CRect(0,0,0,0), this, IDC_SPIN_CTRL); m_spin.SetBuddy(&m_edit); - 注意事项:
- 旋转控件的初始尺寸无需手动调整,
UDS_ALIGNRIGHT会自动适配伙伴编辑框的高度,宽度保持旋转控件默认值。 - 若依赖
UDS_AUTOBUDDY自动关联伙伴,必须保证伙伴窗口的Tab顺序在旋转控件之前。
- 旋转控件的初始尺寸无需手动调整,
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

