我正在尝试编写一个函数,如果当前具有焦点的窗口完全显示在我的客户端矩形中,则该函数将起作用,CScrollView
但我正在努力找出我做错了什么。这是我迄今为止所拥有的:
CWnd * pWnd = pView->GetFocus();
if(pWnd)
{
CRect winRect;
pWnd->GetWindowRect(&winRect);
pView->ScreenToClient(&winRect); //pView is a pointer the CScrollView
CRect viewRect;
pView->GetClientRect(&viewRect);
CPoint currentScrollPoint = pView->GetScrollPosition();
viewRect.OffsetRect(currentScrollPoint);
if(!(viewRect.PtInRect(winRect.BottomRight()) && viewRect.PtInRect(winRect.TopLeft())))
{
//Not shown fully
}
}
谁能看到我在这里做错了什么或提出更好的方法?