我试图手动将焦点边框设置为使用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
. 是否有任何直接消息调用或函数调用将焦点设置到特定选项卡?