本文整理汇总了C++中CControlBase::SetUpdate方法的典型用法代码示例。如果您正苦于以下问题:C++ CControlBase::SetUpdate方法的具体用法?C++ CControlBase::SetUpdate怎么用?C++ CControlBase::SetUpdate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CControlBase
的用法示例。
在下文中一共展示了CControlBase::SetUpdate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetUpdate
void CControlBase::SetUpdate(BOOL bUpdate, COLORREF clr/* = 0*/)
{
m_bUpdate = bUpdate;
for (size_t i = 0; i < m_vecControl.size(); i++)
{
CControlBase * pControlBase = m_vecControl.at(i);
if (pControlBase)
{
pControlBase->SetUpdate(bUpdate, clr);
}
}
}
示例2: ResetControl
// 重置控件
void CDlgPopup::ResetControl()
{
for (size_t i = 0; i < m_vecArea.size(); i++)
{
CControlBase * pControlBase = m_vecArea.at(i);
if (pControlBase)
{
pControlBase->SetUpdate(FALSE);//, m_clrBK);
}
}
for (size_t i = 0; i < m_vecControl.size(); i++)
{
CControlBase * pControlBase = m_vecControl.at(i);
if (pControlBase)
{
pControlBase->SetUpdate(FALSE);//, m_clrBK);
}
}
InvalidateRect(NULL);
}
示例3: OnControlUpdate
LRESULT CDlgPopup::OnControlUpdate(CRect rcUpdate, BOOL bUpdate, CControlBase *pUpdateControlBase)
{
if(pUpdateControlBase == NULL) return 0;
if(bUpdate)
{
pUpdateControlBase->SetUpdate(FALSE);
}
CRect rcAllUpDate = rcUpdate;
if(m_bInit)
{
BOOL bFind = false;
for (size_t i = 0; i < m_vecControl.size(); i++)
{
CControlBase * pControlBase = m_vecControl.at(i);
if (pControlBase)
{
if(bFind)
{
if (pControlBase->GetVisible() && !(pControlBase->GetRect() & rcUpdate).IsRectEmpty())
{
rcAllUpDate |= pControlBase->GetRect();
pControlBase->SetUpdate(FALSE);
}
}
else if(pControlBase == pUpdateControlBase)
{
bFind = true;
}
}
}
}
if(GetSafeHwnd())
{
InvalidateRect(&rcAllUpDate);
}
return 0L;
};
示例4: OnControlUpdate
// 控件界面刷新
LRESULT CDuiPanel::OnControlUpdate(CRect rcUpdate, BOOL bUpdate, CControlBase *pUpdateControlBase)
{
if(pUpdateControlBase == NULL) return 0;
if(bUpdate)
{
pUpdateControlBase->SetUpdate(FALSE);
}
int nVirtualTop = 0;
if(m_nVirtualHeight > m_rc.Height())
{
// 计算显示位置
CDuiScrollVertical* pScrollV = (CDuiScrollVertical*)m_pControScrollV;
int nCurPos = pScrollV->GetScrollCurrentPos(); // 当前top位置
int nMaxRange = pScrollV->GetScrollMaxRange();
nVirtualTop = (nMaxRange > 0) ? nCurPos*(m_nVirtualHeight-m_rc.Height())/nMaxRange : 0; // 当前显示的是虚拟图片中什么位置开始的图片
}
int nVirtualLeft = 0;
if(m_nVirtualWidth > m_rc.Width())
{
// 计算显示位置
CDuiScrollHorizontal* pScrollH = (CDuiScrollHorizontal*)m_pControScrollH;
int nCurPosH = pScrollH->GetScrollCurrentPos(); // 当前top位置
int nMaxRangeH = pScrollH->GetScrollMaxRange();
nVirtualLeft = (nMaxRangeH > 0) ? nCurPosH*(m_nVirtualLeft-m_rc.Width())/nMaxRangeH : 0; // 当前显示的是虚拟图片中什么位置开始的图片
}
CRect rcAllUpDate = rcUpdate;
if(m_bInit)
{
BOOL bFind = false;
for (size_t i = 0; i < m_vecControl.size(); i++)
{
CControlBase * pControlBase = m_vecControl.at(i);
if (pControlBase)
{
if(bFind)
{
if (pControlBase->GetVisible() && !(pControlBase->GetRect() & rcUpdate).IsRectEmpty())
{
rcAllUpDate |= pControlBase->GetRect();
pControlBase->SetUpdate(FALSE);
}
}
else if(pControlBase == pUpdateControlBase)
{
bFind = true;
}
}
}
}
// 按照滚动位置修改更新区域
rcAllUpDate.OffsetRect(-nVirtualLeft, -nVirtualTop);
rcAllUpDate |= m_rc;
InvalidateRect(&rcAllUpDate);
return 0L;
};