本文整理汇总了C++中CComQIPtr::GetExtPadding方法的典型用法代码示例。如果您正苦于以下问题:C++ CComQIPtr::GetExtPadding方法的具体用法?C++ CComQIPtr::GetExtPadding怎么用?C++ CComQIPtr::GetExtPadding使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CComQIPtr
的用法示例。
在下文中一共展示了CComQIPtr::GetExtPadding方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Layout
HRESULT CCUILayoutHorizontal::Layout(IUIFrame* pHostFrame)
{
DEBUG_ASSERT(pHostFrame) ;
IF_RETURN(NULL == pHostFrame, E_INVALIDARG) ;
CSize szContainer(0, 0) ;
pHostFrame->GetSize(&szContainer) ;
CRect rcPadding(0, 0, 0, 0) ;
pHostFrame->GetPadding(&rcPadding) ;
CRect rcExtPadding(0, 0, 0, 0) ;
CComQIPtr<IUIFrameInternal> pFrameInternal = pHostFrame ;
if (pFrameInternal)
{
pFrameInternal->GetExtPadding(&rcExtPadding) ;
}
CRect rcContainer(0, 0, 0, 0) ;
rcContainer.left = rcPadding.left + rcExtPadding.left ;
rcContainer.top = rcPadding.top + rcExtPadding.top ;
rcContainer.right = szContainer.cx - rcPadding.right - rcExtPadding.right ;
rcContainer.bottom = szContainer.cy - rcPadding.bottom - rcExtPadding.bottom ;
INT nCurrentLayout = 0, nUsedSpace = 0 ;
if (LAYOUT::ORIENTATION_NEAR == this->m_nOrientation)
{
nCurrentLayout = rcPadding.left + rcExtPadding.left ;
}
else if (LAYOUT::ORIENTATION_FAR == this->m_nOrientation)
{
nCurrentLayout = szContainer.cx - rcPadding.right - rcExtPadding.right ;
}
LONG lChildrenCount = 0 ;
pHostFrame->GetChildrenCount(&lChildrenCount) ;
for (INT i = 0; i < lChildrenCount; ++i)
{
CComPtr<IUIElement> pElement ;
pHostFrame->GetChildByIndex(i, &pElement) ;
CComQIPtr<IUIFrame> pFrameChild = pElement ;
CComQIPtr<IUIFrameInternal> pFrameInternal = pElement ;
IF_CONTINUE(NULL == pFrameChild || NULL == pFrameInternal) ;
BOOL bHidden = FALSE ;
pFrameChild->GetHidden(&bHidden) ;
IF_CONTINUE(bHidden) ;
BOOL bFloat = FALSE ;
pFrameChild->GetFloat(&bFloat) ;
IF_CONTINUE(bFloat) ;
CRect rcChildMargin(0, 0, 0, 0) ;
pFrameChild->GetMargin(&rcChildMargin) ;
BOOL bChildHeightAsParent = FALSE ;
pFrameChild->GetHeightAsParent(&bChildHeightAsParent) ;
if (bChildHeightAsParent)
{
CSize szEstimateSize(0, 0) ;
szEstimateSize.cx = -1 ;
szEstimateSize.cy = rcContainer.Height() - rcChildMargin.top - rcChildMargin.bottom ;
pFrameInternal->SetEstimateSize(szEstimateSize) ;
}
BOOL bChildWidthAsParent = FALSE ;
pFrameChild->GetWidthAsParent(&bChildWidthAsParent) ;
if (i == this->m_nFillItem -1 || -1 * lChildrenCount + i == this->m_nFillItem)
{
INT nFillSize = this->CalcFillSize(pHostFrame, rcContainer, nUsedSpace, i) ;
CSize szEstimateSize(0, 0) ;
szEstimateSize.cx = nFillSize - rcChildMargin.left - rcChildMargin.right ;
szEstimateSize.cy = -1 ;
pFrameInternal->SetEstimateSize(szEstimateSize) ;
}
else if (bChildWidthAsParent)
{
pFrameInternal->SetEstimateSize(CSize(0, -1)) ;
}
CRect rcTarget(0, 0, 0, 0) ;
CSize szChildChild(0, 0) ;
pFrameChild->GetSize(&szChildChild) ;
nUsedSpace += szChildChild.cx + rcChildMargin.left + rcChildMargin.right ;
INT nDrift = DRIFT::DRIFT_NEAR ;
pFrameChild->GetDrift(&nDrift) ;
if (LAYOUT::ORIENTATION_NEAR == this->m_nOrientation)
{
if (DRIFT::DRIFT_NEAR == nDrift)
{
rcTarget.top = rcContainer.top + rcChildMargin.top ;
}
else if (DRIFT::DRIFT_FAR == nDrift)
{
rcTarget.top = rcContainer.bottom - rcChildMargin.bottom - szChildChild.cy ;
}
else if (DRIFT::DRIFT_MIDDLE == nDrift)
{
rcTarget.top = (rcContainer.Height() - szChildChild.cy)/2 + rcContainer.top ;
//.........这里部分代码省略.........
示例2: CalcSize
HRESULT CCUILayoutHorizontal::CalcSize(IUIFrame* pHostFrame, SIZE szOld, SIZE* pOutSize)
{
DEBUG_ASSERT(pHostFrame) ;
IF_RETURN(NULL == pHostFrame, E_INVALIDARG) ;
DEBUG_ASSERT(pOutSize) ;
IF_RETURN(NULL == pOutSize, E_INVALIDARG) ;
BOOL bAutoWidth = FALSE, bAutoHeight = FALSE ;
pHostFrame->GetAutoWidth(&bAutoWidth) ;
pHostFrame->GetAutoHeight(&bAutoHeight) ;
if (!bAutoWidth && !bAutoHeight)
{
*pOutSize = szOld ;
return S_OK ;
}
CRect _rcPadding(0, 0, 0, 0) ;
pHostFrame->GetPadding(_rcPadding) ;
CRect _rcExtPadding(0, 0, 0, 0) ;
CComQIPtr<IUIFrameInternal> pFrameInternal = pHostFrame ;
if (pFrameInternal)
{
pFrameInternal->GetExtPadding(&_rcExtPadding) ;
}
CSize szMinBoundSize = szOld ;
if (bAutoHeight)
{
szMinBoundSize.cy = 0 ;
}
if (bAutoWidth)
{
szMinBoundSize.cx = 0 ;
}
VEC_FRAME _vec_frame ;
LONG lChildrenCount = 0 ;
pHostFrame->GetChildrenCount(&lChildrenCount) ;
for (INT i = 0; i < lChildrenCount; ++i)
{
//IF_CONTINUE(i == this->m_nFillItem - 1) ;
CComPtr<IUIElement> pElement ;
pHostFrame->GetChildByIndex(i, &pElement) ;
CComQIPtr<IUIFrame> pFrame = pElement ;
IF_CONTINUE(NULL == pFrame) ;
CComQIPtr<IUIFrameInternal> pFrameInternal = pFrame ;
IF_CONTINUE(NULL == pFrameInternal) ;
BOOL bHidden = FALSE ;
pFrame->GetHidden(&bHidden) ;
IF_CONTINUE(TRUE == bHidden) ;
BOOL bFloat = TRUE ;
pFrame->GetFloat(&bFloat) ;
IF_CONTINUE(TRUE == bFloat) ;
BOOL bChildHeightAsParent = FALSE ;
pFrame->GetHeightAsParent(&bChildHeightAsParent) ;
BOOL bChildWidthAsParent = FALSE ;
pFrame->GetWidthAsParent(&bChildWidthAsParent) ;
BOOL bChildAutoHeight = FALSE ;
pFrame->GetAutoHeight(&bChildAutoHeight) ;
BOOL bChildAutoWidth = FALSE ;
pFrame->GetAutoWidth(&bChildAutoWidth) ;
if (bChildHeightAsParent && bChildAutoWidth && bAutoHeight)
{
_vec_frame.push_back(pFrame) ;
}
else
{
CRect rcFrameMargin(0, 0, 0, 0) ;
pFrame->GetMargin(&rcFrameMargin) ;
CSize szEstimateSize(-1, -1) ;
if (bChildWidthAsParent)
{
szEstimateSize.cx = 0 ;
}
if (bChildHeightAsParent && !bAutoHeight)
{
szEstimateSize.cy = szOld.cy - _rcPadding.top - _rcPadding.bottom - _rcExtPadding.top - _rcExtPadding.bottom ;
}
pFrameInternal->SetEstimateSize(szEstimateSize) ;
CSize szFrame(0, 0) ;
pFrame->GetSize(&szFrame) ;
if (i == this->m_nFillItem -1 || -1 * lChildrenCount + i == this->m_nFillItem)
{
szFrame.cx = 0 ;
}
if (bAutoHeight)
{
INT nHeight = szFrame.cy + rcFrameMargin.top + rcFrameMargin.bottom ;
if (nHeight > szMinBoundSize.cy)
//.........这里部分代码省略.........