MFC:以编程方式控制 TAB 顺序

MFC: TAB order programmatically for controls

我使用默认的 CButton 并以编程方式创建了 3 个按钮..

BOOL CTestDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();
    CRect rect;


    GetClientRect(&rect);

    CRect btnRect = CRect(rect.left+50,100,rect.left+150,150);
    button1.Create(_T("ONE"),BS_FLAT | WS_VISIBLE,btnRect,this,1); 

    btnRect.MoveToX(200);
    button2.Create(_T("TWO"),BS_FLAT | WS_VISIBLE,btnRect,this,2); 


    btnRect.MoveToX(350);
    button3.Create(_T("THREE"),BS_FLAT | WS_VISIBLE,btnRect,this,3); 



    return TRUE;  
}

如果我看到 O/P,总是突出显示 Buton ONE,并且没有 TAB 在工作。

如何支持TAB顺序以及如何改变焦点。有人可以帮忙吗

谢谢

您创建的按钮没有必要的 windows 样式。

来自MSDN

Apply the following window styles to a button control:

  • WS_CHILD 总是

  • WS_VISIBLE 通常

  • WS_DISABLED 很少

  • WS_GROUP 分组控制

  • WS_TABSTOP 将按钮包含在 Tab 键顺序中