当前位置: 首页>>代码示例>>C++>>正文


C++ CTreeNode::GetCascadedheight方法代码示例

本文整理汇总了C++中CTreeNode::GetCascadedheight方法的典型用法代码示例。如果您正苦于以下问题:C++ CTreeNode::GetCascadedheight方法的具体用法?C++ CTreeNode::GetCascadedheight怎么用?C++ CTreeNode::GetCascadedheight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CTreeNode的用法示例。


在下文中一共展示了CTreeNode::GetCascadedheight方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CalcSizeHelper

//+-------------------------------------------------------------------------
//
//  Method:     CRichtextLayout::CalcSizeHelper
//
//  Synopsis:   Calculate the size of the object
//
//--------------------------------------------------------------------------
DWORD CRichtextLayout::CalcSizeHelper(CCalcInfo* pci, int charX, int charY, SIZE* psize)
{
    CSize       sizeOriginal;
    DWORD       grfReturn;
    CElement*   pInput  = ElementOwner();

    GetSize(&sizeOriginal);

    //BUGBUG (gideons) should modify Cols and Rows if user resizes
    grfReturn = (pci->_grfLayout & LAYOUT_FORCE);

    CTreeNode*  pTreeNode = pInput->GetFirstBranch();
    CUnitValue  uvWidth   = pTreeNode->GetCascadedwidth();
    CUnitValue  uvHeight  = pTreeNode->GetCascadedheight();
    BOOL        fMinMax   = (pci->_smMode==SIZEMODE_MMWIDTH || pci->_smMode==SIZEMODE_MINWIDTH);

    if(uvWidth.IsNullOrEnum() || uvHeight.IsNullOrEnum())
    {
        SIZE            sizeFontForShortStr;
        SIZE            sizeFontForLongStr;
        styleOverflow   overflow;

        GetFontSize(pci, &sizeFontForShortStr, &sizeFontForLongStr);
        Assert(sizeFontForShortStr.cx && sizeFontForShortStr.cy && sizeFontForLongStr.cx && sizeFontForLongStr.cy);

        // BUGBUG: The TEXT_INSET_DEFAULT_xxxx values are really padding and should be handled as such (brendand)
        psize->cx = charX * sizeFontForLongStr.cx
            + pci->DocPixelsFromWindowX(TEXT_INSET_DEFAULT_LEFT
            + TEXT_INSET_DEFAULT_RIGHT
            + GetDisplay()->GetCaret());
        psize->cy = charY * sizeFontForLongStr.cy
            + pci->DocPixelsFromWindowY(TEXT_INSET_DEFAULT_TOP
            + TEXT_INSET_DEFAULT_BOTTOM
            + 0);

        // BUGBUG: Add this space in another way? (brendand)
        overflow = pTreeNode->GetCascadedoverflowY();
        if(overflow != styleOverflowHidden)
        {
            psize->cx += _afxGlobalData._sizeScrollbar.cx;
            if(!IsWrapSet())
            {
                psize->cy += _afxGlobalData._sizeScrollbar.cy;
            }
        }
        AdjustSizeForBorder(psize, pci, TRUE);
    }

    if(!uvWidth.IsNullOrEnum())
    {
        psize->cx = (!fMinMax || !PercentWidth() ?
            uvWidth.XGetPixelValue(pci,
            pci->_sizeParent.cx,
            pInput->GetFirstBranch()->GetFontHeightInTwips(&uvWidth))
            : 0);
    }

    if(!uvHeight.IsNullOrEnum())
    {
        psize->cy = (pci->_smMode==SIZEMODE_MMWIDTH
            ? psize->cx
            : (!fMinMax || !PercentHeight()
            ? uvHeight.YGetPixelValue(pci,
            pci->_sizeParent.cy,
            pInput->GetFirstBranch()->GetFontHeightInTwips(&uvHeight))
            : 0));
    }
    if(pci->_smMode == SIZEMODE_MMWIDTH)
    {
        _xMax = psize->cx;
        _xMin = psize->cx;

        _fMinMaxValid = TRUE;
    }
    else if(pci->_smMode == SIZEMODE_MINWIDTH)
    {
        _xMin = psize->cx;
    }

    return grfReturn;
}
开发者ID:hufuman,项目名称:xindows,代码行数:88,代码来源:TxtLayout.cpp


注:本文中的CTreeNode::GetCascadedheight方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。