本文整理汇总了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();
}
示例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;
}