duilib eidt 滚动条问题

为了解决上图中的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();
}

/////////////////////////////////////////////////////////



代码挺乱的,好在解决了问题....



相关文章: