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


C++ TRect::SetEmpty方法代码示例

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


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

示例1: GetThumb

void TScrollBar::GetThumb(TRect& r) const
{
	if (fMinimum < fMaximum)
	{
		GetThumbArea(r);

		if (IsVertical())
		{
			TCoord	available = r.GetHeight();

			if (available > kMinThumbSize)
			{
				TCoord thumbSize;
				if (fProportionalThumbs)
					thumbSize = ((long long)fBounds.GetHeight() * (long long)available) / (long long)(fMaximum - fMinimum + fBounds.GetHeight());
				else
					thumbSize = fBounds.GetWidth();
					
				if (thumbSize < kMinThumbSize)
					thumbSize = kMinThumbSize;
				else if (thumbSize > available)
					thumbSize = available;

				available -= thumbSize;				
				r.top += (int)(((long long)(fValue - fMinimum) * (long long)available) / (long long)(fMaximum - fMinimum));
				r.bottom = r.top + thumbSize;
			}
		}
		else
		{
			TCoord	available = r.GetWidth();

			if (available > kMinThumbSize)
			{
				TCoord thumbSize;
				if (fProportionalThumbs)
					thumbSize = ((long long)fBounds.GetWidth() * (long long)available) / (long long)(fMaximum - fMinimum + fBounds.GetWidth());
				else
					thumbSize = fBounds.GetHeight();

				if (thumbSize < kMinThumbSize)
					thumbSize = kMinThumbSize;
				else if (thumbSize > available)
					thumbSize = available;

				available -= thumbSize;			
				r.left += (int)(((long long)(fValue - fMinimum) * (long long)available) / (long long)(fMaximum - fMinimum));
				r.right = r.left + thumbSize;
			}
		}
	}
	else
		r.SetEmpty();
}
开发者ID:mikevoydanoff,项目名称:zoinks,代码行数:54,代码来源:TScrollBar.cpp

示例2: bounds

//
/// Tiles the gadgets in the direction requested (horizontal or vertical). Derived
/// classes can adjust the spacing between gadgets.
///
/// Horizontal direction results in a row-major layout, 
/// and vertical direction results in column-major layout
//
TRect
TToolBox::TileGadgets()
{
  TSize     cellSize;
  ComputeCellSize(cellSize);

  int       numRows, numColumns;
  ComputeNumRowsColumns(numRows, numColumns);

  TRect     innerRect;
  GetInnerRect(innerRect);

  TRect     invalidRect;
  invalidRect.SetEmpty();

  if (Direction == Horizontal) {
    // Row Major
    //
    int y = innerRect.top;
    TGadget* g = Gadgets;

    for (int r = 0; r < numRows; r++) {
      int x = innerRect.left;

      for (int c = 0; c < numColumns && g; c++) {
        TRect bounds(TPoint(x, y), cellSize);
        TRect originalBounds(g->GetBounds());

        if (bounds != g->GetBounds()) {
          g->SetBounds(bounds);

          if (invalidRect.IsNull())
            invalidRect = bounds;
          else
            invalidRect |= bounds;

          if (originalBounds.TopLeft() != TPoint(0, 0))
            invalidRect |= originalBounds;
        }

        x += cellSize.cx;
        g = g->NextGadget();
      }

      y += cellSize.cy;
    }
  }
  else {
    // Column Major
    //
    int x = innerRect.left;
    TGadget* g = Gadgets;

    for (int c = 0; c < numColumns; c++) {
      int y = innerRect.top;

      for (int r = 0; r < numRows && g; r++) {
        TRect bounds(TPoint(x, y), cellSize);
        TRect originalBounds(g->GetBounds());

        if (bounds != originalBounds) {
          g->SetBounds(bounds);

          if (invalidRect.IsNull())
            invalidRect = bounds;
          else
            invalidRect |= bounds;

          if (originalBounds.TopLeft() != TPoint(0, 0))
            invalidRect |= originalBounds;
        }

        y += cellSize.cy;
        g = g->NextGadget();
      }

      x += cellSize.cx;
    }
  }
  return invalidRect;
}
开发者ID:GarMeridian3,项目名称:Meridian59,代码行数:88,代码来源:toolbox.cpp


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