0

我试图手动将焦点边框设置为使用SetCurSel()API 选择的选项卡。但是在这样做的同时,我还想设置键盘焦点(如图所示的选项卡周围的虚线边框焦点)。我所能实现的只是使用SetCurSel().

处于键盘焦点时应用于选项卡控件的焦点边框 在我的项目中,我不希望TCN_SELCHANGING发送,这就是我使用SetCurSel()而不是SetCurFocus()调用TCN_SELCHANGINGTCN_SELCHANGE通知消息的原因。

目前在我的代码中,我正在覆盖LBUTTON消息以控制选项卡选择,并且我会SetCurSel()从那里调用。

LRESULT TabEx::WindowProc( UINT uMsg_i, WPARAM wParam_i, LPARAM lParam_i )
{
    switch( uMsg_i )
    {
        case WM_LBUTTONDOWN :
        {
            switch( wParam_i )
            {
                case MK_LBUTTON:
                {
                    int nIndex = GetCurSel( );
                    if()// Logic To determine Which Tab to Select
                    {
                            // Decide to Select nIndex th Tab
                            SetCurSel( nIndex );
                            SendSelChangeNotification( TCN_SELCHANGE );
                            retrun true;
                    
                    }
                    
                    break;
                }
            }
        break;
        }
        .
        .
        .
        .
    }
    .
    .
                            
}

上面代码的问题是它会改变选项卡选择,但没有改变焦点。我不能SetCurFocus()在这里使用,因为我不想干扰TCN_SELCHANGING. 是否有任何直接消息调用或函数调用将焦点设置到特定选项卡?

4

0 回答 0