#define IDC_BTN 1069class CTestBtn : public CButtonfor(i=0;i<9;i++)
{
CTestBtn pbutton=new CTestBtn; 
pbutton->Create (_T("out"), WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, CRect(20+i*80,20,55+i*80,38),pParentWnd, IDC_BTN);
}这是我自己创建9个button的部分程序以实现,现在我希望key down button能移动button到我鼠标移动的位置,欢迎各位高手给出解决方法

解决方案 »

  1.   

    for(i=0;i<9;i++)
    {
    CTestBtn pbutton=new CTestBtn; 
    pbutton->Create (_T("out"), WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, CRect(20+i*80,20,55+i*80,38),pParentWnd, IDC_BTN+i);
    }GetDlgItem(IDC_BTN+index)->MoveWindow?
      

  2.   

    这个index怎么取,我去IDC_BTN取不到button 我随便加一个index出错
      

  3.   

    我现在是在改程序,原程序里面就是都是一个ID我也不太清楚具体怎么实现的,现在ID就是一样的有没有办法
      

  4.   

    for(i=0;i<9;i++)
    {
    CTestBtn pbutton=new CTestBtn;
    pbutton->Create (_T("out"), WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, CRect(20+i*80,20,55+i*80,38),pParentWnd, IDC_BTN+i);
    }
    for(i=0;i<9;i++)
    {
    GetDlgItem(IDC_BTN+i)->MoveWindow(CRect(20+i*80,20,55+i*80,38));
    }
    key down button能移动button到我鼠标移动的位置.???????
    不知道你到底要实现什么功能,所以上面只是一个实例:)
      

  5.   

    就是怎么能够移动一个自己创建的button,关键是创建时是同一ID,(可能实现的时候ID不同)我不太清楚
    for(i=0;i<9;i++)
    {
    CTestBtn pbutton=new CTestBtn; 
    pbutton->Create (_T("out"), WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, CRect(20+i*80,20,55+i*80,38),pParentWnd, IDC_BTN);
    }
      

  6.   

    老兄,你到底想干什么。如果只是移动按钮,用不着create  9 次呀。
      

  7.   

    ID都一样, 又没有保存 按钮的句柄, 怎么取啊如果保存的句柄: pbutton[index].MoveWindow();
    如果ID不一样 : GetDlgItem(ID)->MoveWindow();
      

  8.   

    哦,谢谢 我保留了句柄,现在可以实现了,还想问一下为什么同一ID可以创建,实际创建id是否相同