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资源定义

解决方案 »

  1.   

    你是要拖动spin,然后Edit里的数值跟着变化么?
    SetBuddy没做过,你可以在Spin的拖动消息里SetWindowText(ID_EDIT, str);
    又加上你没有用资源,那么只好手动添加消息响应,自己查下吧,应该类似
    ON_COMMAND(MSG, FUNC, id);
      

  2.   


    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 设置伙伴窗口
      

  3.   

    你试试应该可以解决问题:
     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控件中