本文整理汇总了C++中CControlBase::SetPositionWithParent方法的典型用法代码示例。如果您正苦于以下问题:C++ CControlBase::SetPositionWithParent方法的具体用法?C++ CControlBase::SetPositionWithParent怎么用?C++ CControlBase::SetPositionWithParent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CControlBase
的用法示例。
在下文中一共展示了CControlBase::SetPositionWithParent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawControl
//.........这里部分代码省略.........
strFormatColumn.SetFormatFlags(StringFormatFlagsNoWrap | StringFormatFlagsMeasureTrailingSpaces); // 不换行
}
// 根据bUseTitleFont决定用标题字体还是普通字体
BSTR bsItemTitle = strItemTitle.AllocSysString();
graphics.DrawString(bsItemTitle, (INT)wcslen(bsItemTitle),
itemInfo.bUseTitleFont ? &fontTitle : &font, rect, &strFormatColumn, itemInfo.bUseTitleFont ? &solidBrushT : &solidBrushItem);
::SysFreeString(bsItemTitle);
// 画单元格内容
if(!bSingleLine)
{
rect.Offset(0, (Gdiplus::REAL)m_nRowHeight / 2 + 2);
rect.Height = (Gdiplus::REAL)m_nRowHeight / 2 - 4;
BSTR bsItemContent = itemInfo.strContent.AllocSysString();
graphics.DrawString(bsItemContent, (INT)wcslen(bsItemContent), &font, rect, &strFormatColumn, &solidBrushItem);
::SysFreeString(bsItemContent);
}
// 设置单元格子控件的位置
for(size_t k = 0; k < itemInfo.vecControl.size(); k++)
{
CControlBase* pControl = itemInfo.vecControl.at(k);
if(pControl)
{
CRect rcParent = CRect(nPosItemX, m_nHeaderHeight + nVI*m_nRowHeight + 1,
(int)(rect.X+rect.Width), (nVI+1)*m_nRowHeight - 1);
if((int)(rect.GetRight()) > nContentWidth)
{
// 最后一列需要减去滚动条宽度
rcParent.right -= m_nScrollWidth;
}
rcParent.OffsetRect(m_rc.left - m_nVirtualLeft, m_rc.top - (nYViewPos + m_nHeaderHeight));
pControl->SetPositionWithParent(rcParent);
CRect rcControl = pControl->GetRect();
// 只有当前在显示范围内的控件设置为可见
if( (rcControl.top < m_rc.top) || (rcControl.bottom > m_rc.bottom) ||
(rcControl.left < m_rc.left) || (rcControl.right > m_rc.right) )
{
pControl->SetVisible(FALSE);
}else
{
pControl->SetVisible(TRUE);
}
}
}
if(j == 0)
{
// 为了使第二列开始是对齐的,所以第二列开始位置按照第一列的宽度计算
nPosItemX = itemInfo.rcItem.right;
}else
{
nPosItemX += itemInfo.rcItem.Width();
}
}
// 画分隔线(采用拉伸模式)
if(m_pImageSeperator != NULL)
{
// 使用拉伸模式画图
graphics.DrawImage(m_pImageSeperator, RectF(0, (Gdiplus::REAL)(m_nHeaderHeight + (nVI+1)*m_nRowHeight), (Gdiplus::REAL)(nContentWidth-2), (Gdiplus::REAL)m_sizeSeperator.cy),
0, 0, (Gdiplus::REAL)m_sizeSeperator.cx, (Gdiplus::REAL)m_sizeSeperator.cy, UnitPixel);
}else
if(m_clrSeperator.GetValue() != Color(0, 0, 0, 0).GetValue())
{