程序代码如下如何使TAB键按下时焦点在Edit控件和DefButton之间循环?现在只能在Edit之间循环,按TAB键时Edit文本显示区产生退格hwndButton = CreateWindow ( TEXT("button"), TEXT ("单击加运算"),
                              WS_CHILD | WS_VISIBLE |  BS_DEFPUSHBUTTON,    
                              80, 170,20 * cxChar, 7 * cyChar / 4,     
                              hwnd, (HMENU) ID_BUTTON,((LPCREATESTRUCT) lParam) -> hInstance, NULL);     
for ( i = 0; i < 3 ; i++)
  {
  hwndEdit [i]= CreateWindowEx (WS_EX_CLIENTEDGE,TEXT ("edit"), NULL,
                         WS_CHILD | WS_VISIBLE  |
                                   WS_BORDER | ES_LEFT | ES_MULTILINE |
                                   ES_AUTOHSCROLL | ES_AUTOVSCROLL,
                           80, cyChar * (1 + 3 * i),
                                   20 * cxChar, 7 * cyChar / 4, hwnd, (HMENU) i,
                         ((LPCREATESTRUCT) lParam) -> hInstance, NULL) ;
    
  OldEdit[i] = (WNDPROC) SetWindowLong (hwndEdit[i],   GWL_WNDPROC, (LONG)EditProc); 
                                                 LRESULT CALLBACK EditProc (HWND hwnd, UINT message, 
                             WPARAM wParam, LPARAM lParam)
{
     int id = GetWindowLong (hwnd, GWL_ID) ;
          
     switch (message)
     {
     case WM_KEYDOWN :
          if (wParam == VK_TAB)
               SetFocus (GetDlgItem (GetParent (hwnd), 
           (id + (GetKeyState (VK_SHIFT) < 0 ? 2 : 1)) % 3)) ;         
          break ;
               
     case WM_SETFOCUS :
          idFocus = id ;
          break ;
     }
     return CallWindowProc (OldEdit[id], hwnd, message, wParam, lParam) ;
}