OnCreate函数中:
{
//CEdit m_edit1;
CRect rect(100,100,150,125);
m_edit1.Create(WS_VISIBLE | WS_CHILD | UDS_SETBUDDYINT, rect, this, 101);//CSpinButtonCtrl m_spin1;
CRect rect2(150,100,170,125);
m_spin1.Create(WS_VISIBLE | WS_CHILD, rect2, this, 102);
m_spin1.SetRange(1,100); //设置旋转按钮取值范围
m_spin1.SetBuddy(&m_edit1);//SetBuddy 设置伙伴窗口
}这样生成的微调按钮为什么不能用,和左边的Edit根本不联动,请指导,
要求:纯代码,不用rc资源定义
{
//CEdit m_edit1;
CRect rect(100,100,150,125);
m_edit1.Create(WS_VISIBLE | WS_CHILD | UDS_SETBUDDYINT, rect, this, 101);//CSpinButtonCtrl m_spin1;
CRect rect2(150,100,170,125);
m_spin1.Create(WS_VISIBLE | WS_CHILD, rect2, this, 102);
m_spin1.SetRange(1,100); //设置旋转按钮取值范围
m_spin1.SetBuddy(&m_edit1);//SetBuddy 设置伙伴窗口
}这样生成的微调按钮为什么不能用,和左边的Edit根本不联动,请指导,
要求:纯代码,不用rc资源定义
SetBuddy没做过,你可以在Spin的拖动消息里SetWindowText(ID_EDIT, str);
又加上你没有用资源,那么只好手动添加消息响应,自己查下吧,应该类似
ON_COMMAND(MSG, FUNC, id);
CRect rect(100,100,150,125);
m_edit1.Create(WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL, rect, this, 101);
//
CRect rect2(150,100,170,125);
m_spin1.Create(WS_VISIBLE | WS_CHILD|UDS_AUTOBUDDY|UDS_SETBUDDYINT, rect2, this, 102);
m_spin1.SetRange(1,100); //设置旋转按钮取值范围
m_spin1.SetBuddy(&m_edit1);//SetBuddy 设置伙伴窗口
CWnd*pEdit=GetDlgItem(IDC_EDITSPIN);
//取得要与微调按钮控件相关联的EDIT控件的窗体指针
m_Spin.SetRange(m_RangeFrom,m_RangeTo); //重新设置微调按钮控件的范围
m_Spin.SetBuddy(pEdit); //为微调按钮控件设置关联的EDIT控件
TCHAR buf(32);
int pos=m_Spin.GetPos(); //取得微调按钮的当前位置
wsprintf(buf,_T(;%d;),pos); ******出错处
CWnd*pWnd=m_Spin.GetBuddy();
if (pWnd != NULL)
pWnd -> SetWindowText(buf); ******出错处
//将微调按钮现在位置显示在关联的EDIT控件中