为了解决上图中的bug,修改了的代码如下:
所有的文件为:UIManager.cpp
//这些代码为了解决滚动条的bug/
RECT rectTmp;
rectTmp.top = -1;
rectTmp.bottom = -1;
rectTmp.left = -1;
rectTmp.right = -1;
CDuiString duiClass;
CControlUI * pFocusControl = GetFocus();
if( pFocusControl != NULL )
{
CDuiString duiStr = pFocusControl->GetText();
duiClass = pFocusControl->GetClass();
if( duiClass == _T("EditUI") )
m_pTempControll = pFocusControl;
}
if(pFocusControl == NULL ){
if( m_pTempControll != NULL )
rectTmp = m_pTempControll->GetRelativePos();
}
else
rectTmp = pFocusControl->GetRelativePos();
if( duiClass == _T("EditUI") ){
if( rectTmp.top < 0 )
SetFocus(NULL);
}
// Let's make sure that the scroll item below the cursor is the same as before...
::SendMessage(m_hWndPaint, WM_MOUSEMOVE, 0, (LPARAM) MAKELPARAM(m_ptLastMousePos.x, m_ptLastMousePos.y));
if(rectTmp.top >= 0)
{
if( m_pTempControll != NULL )
m_pTempControll->SetFocus();
if( m_pTempControll != pFocusControl ){
if( pFocusControl != NULL )
pFocusControl->SetFocus();
}
}
/
代码挺乱的,好在解决了问题....