fillsolidrect_onerasebkgnd 重影_bitblt函数(28)

电脑杂谈  发布时间:2017-03-10 14:21:13  来源:网络整理

if (i == nThis)

{

if (bHorz)

m_szHorz.cx = m_szMinHorz.cx;

else

m_szVert.cy = m_szMinVert.cy;

return TRUE; // the dockbar will split the row for us

}

// we have enough bars - go negotiate with them

m_pDockBar->m_arrBars.InsertAt(i, (CControlBar*) NULL);

nLast = i - 1;

break;

}

if (bIsSizingBar)

{

nLengthActual += bHorz ? pBar->m_szHorz.cx - 2 :

pBar->m_szVert.cy - 2;

nWidthMax = max(nWidthMax, bHorz ? pBar->m_szHorz.cy :

pBar->m_szVert.cx);

}

else

nLengthAvail -= nLengthBar;

}

CSCBArray arrSCBars;

GetRowSizingBars(arrSCBars);

int nNumBars = arrSCBars.GetSize();

int nDelta = nLengthAvail - nLengthActual;

// return faster when there is only one sizing bar per row (this one)

if (nNumBars == 1)

{

ASSERT(arrSCBars[0] == this);

if (nDelta == 0)

return TRUE;

m_bKeepSize = FALSE;

(bHorz ? m_szHorz.cx : m_szVert.cy) += nDelta;

return TRUE;

}

// make all the bars the same width

for (i = 0; i < nNumBars; i++)

if (bHorz)

arrSCBars[i]->m_szHorz.cy = nWidthMax;

else

arrSCBars[i]->m_szVert.cx = nWidthMax;

// distribute the difference between the bars,

// but don't shrink them below their minsizes

while (nDelta != 0)

{

int nDeltaOld = nDelta;

for (i = 0; i < nNumBars; i++)

{

pBar = arrSCBars[i];

int nLMin = bHorz ?

pBar->m_szMinHorz.cx : pBar->m_szMinVert.cy;

int nL = bHorz ? pBar->m_szHorz.cx : pBar->m_szVert.cy;

if ((nL == nLMin) && (nDelta < 0) || // already at min length

pBar->m_bKeepSize) // or wants to keep its size

continue;


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36846-28.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 笠原弘子
      笠原弘子

      你知道什么意思了吧

    热点图片
    拼命载入中...