我试图手动将焦点边框设置为使用SetCurSel()API 选择的选项卡。但是在这样做的同时,我还想设置键盘焦点(如图所示的选项卡周围的虚线边框焦点)。我所能实现的只是使用SetCurSel().
在我的项目中,我不希望TCN_SELCHANGING发送,这就是我使用SetCurSel()而不是SetCurFocus()调用TCN_SELCHANGING或TCN_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. 是否有任何直接消息调用或函数调用将焦点设置到特定选项卡?