TA的每日心情 | 开心 昨天 08:40 |
---|
签到天数: 955 天 [LV.10]以坛为家III
管理员
- 积分
- 29079
|
@0時迷子 582607594 RECT SCaret::Draw(IRenderTarget *pRT,int x, int y,BOOL bErase)
{
SWindow * pOwner = SWindowMgr::GetWindow(m_owner);
SASSERT(pOwner);
SASSERT(pOwner->IsFocusable());
CAutoRefPtr<IRenderTarget> pRTCaret;
GETRENDERFACTORY->CreateRenderTarget(&pRTCaret,0,0);
pRTCaret->SelectObject(m_bmpCaret);
CSize szCaret = m_bmpCaret->Size();
CRect rcCaret(CPoint(x,y),szCaret);
CRect rcWnd = pOwner->GetClientRect();
SWindow *pWnd = pOwner->GetParent();
SItemPanel *pPanel = nullptr;
while(pWnd)
{
CRect rcLimit;
pPanel = dynamic_cast<SItemPanel*>(pWnd);
if (pPanel)
{//当父窗体为空的时候可能是TileView遍历不到
pPanel->FrameToHost(rcWnd);
pWnd = pPanel->GetHostWindow();
}
else
{
rcLimit = pWnd->GetClientRect();
rcWnd = rcWnd & rcLimit;
}
pWnd = pWnd->GetParent();
}
//pOwner->GetContainer()->FrameToHost(rcWnd);
CRect rcCaretShow = rcCaret & rcWnd;
pRT->BitBlt(&rcCaretShow,pRTCaret,rcCaretShow.left - rcCaret.left,rcCaretShow.top - rcCaret.top,DSTINVERT);
return rcCaretShow;
}
小白 @0時迷子 改了什么,我可以转到论坛里,不然过了今晚这个改动就搜索不到了
@小白 edit嵌套进各种view里面导致光标无法显示。
|
|