本文整理汇总了C++中CG32bitImage::DrawText方法的典型用法代码示例。如果您正苦于以下问题:C++ CG32bitImage::DrawText方法的具体用法?C++ CG32bitImage::DrawText怎么用?C++ CG32bitImage::DrawText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CG32bitImage
的用法示例。
在下文中一共展示了CG32bitImage::DrawText方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnPaint
void CExtensionNavigatorMenuItem::OnPaint(CG32bitImage &Screen, const RECT &rcInvalid)
{
// may remove panel outlining in future
DrawPanelOutline(Screen);
int xO = m_AssociatedPanel.GetOriginX();
int yO = m_AssociatedPanel.GetOriginY();
int SpaceWidth = m_AssociatedPanel.GetSpaceWidth();
int SpaceHeight = m_AssociatedPanel.GetSpaceHeight();
Screen.DrawText(m_AssociatedPanel.GetOriginX() + 10, m_AssociatedPanel.GetOriginY() + 10, m_HeadingFont, m_HeadingColor, m_Extension.GetName());
}
示例2: PaintInfoText
void CGameSession::PaintInfoText (CG32bitImage &Dest, const CString &sTitle, const TArray<CString> &Body, bool bAboveTargeting)
// PaintInfoText
//
// Paints info text on the screen
{
int i;
const CVisualPalette &VI = m_HI.GetVisuals();
const CG16bitFont &TitleFont = VI.GetFont(fontHeader);
const CG16bitFont &BodyFont = VI.GetFont(fontMedium);
int x = m_rcScreen.left + 2 * TitleFont.GetAverageWidth();
int cy = TitleFont.GetHeight() + Body.GetCount() * BodyFont.GetHeight();
int cySpacing = BodyFont.GetHeight() / 2;
RECT rcCenter;
m_HUD.GetClearHorzRect(&rcCenter);
int y = (bAboveTargeting ? rcCenter.bottom : m_rcScreen.bottom) - (cy + cySpacing);
Dest.DrawText(x,
y,
TitleFont,
VI.GetColor(colorTextHighlight),
sTitle);
y += TitleFont.GetHeight();
// Paint the body
for (i = 0; i < Body.GetCount(); i++)
{
Dest.DrawText(x,
y,
BodyFont,
VI.GetColor(colorTextDialogLabel),
Body[i]);
y += BodyFont.GetHeight();
}
}
示例3: DrawTitleBar
void CExtensionNavigator::DrawTitleBar(CG32bitImage &Screen)
{
Screen.DrawText(m_AssociatedPanel.GetOriginX() + 10, m_AssociatedPanel.GetOriginY() + 10, m_HeadingFont, m_HeadingColor, CONSTLIT("Extension Navigator"));
}
示例4: Paint
void CGItemListArea::Paint (CG32bitImage &Dest, const RECT &rcRect)
// Paint
//
// Paint the area
{
// Can't paint if we are not properly initialized
if (m_pFonts == NULL)
return;
bool bPaintCursor = false;
RECT rcCursor;
// Paint Background
CG32bitPixel rgbFadeBackColor = CG32bitPixel(CG32bitPixel::Darken(m_rgbBackColor, 220), 220);
CGDraw::RoundedRect(Dest,
rcRect.left,
rcRect.top,
RectWidth(rcRect),
RectHeight(rcRect),
BORDER_RADIUS + 1,
rgbFadeBackColor);
// If there are no items here, then say so
if (m_pListData == NULL || !m_pListData->IsCursorValid())
{
int x = rcRect.left + (RectWidth(rcRect) - m_pFonts->LargeBold.MeasureText(STR_NO_ITEMS)) / 2;
int y = rcRect.top + (RectHeight(rcRect) - m_pFonts->LargeBold.GetHeight()) / 2;
Dest.DrawText(x, y,
m_pFonts->LargeBold,
RGB_DISABLED_TEXT,
STR_NO_ITEMS);
m_iOldCursor = -1;
}
// Otherwise, paint the list of items
else
{
int iCursor = m_pListData->GetCursor();
int iCount = m_pListData->GetCount();
ASSERT(iCursor >= 0 && iCursor < m_Rows.GetCount());
// If the cursor has changed, update the offset so that we
// have a smooth scroll.
if (m_iOldCursor != -1
&& m_iOldCursor != iCursor
&& m_iOldCursor < m_Rows.GetCount())
{
int cyDiff = (m_Rows[iCursor].cyHeight - m_Rows[m_iOldCursor].cyHeight) / 2;
if (m_iOldCursor < iCursor)
m_yOffset = m_Rows[m_iOldCursor].cyHeight + cyDiff;
else
m_yOffset = -(m_Rows[iCursor].cyHeight - cyDiff);
}
m_iOldCursor = iCursor;
// Figure out the ideal position of the cursor (relative to the
// rect).
int yIdeal = m_yOffset + ((RectHeight(rcRect) - m_Rows[iCursor].cyHeight) / 2);
// Figure out the actual position of the cursor row (relative to the
// rect).
int yCursor;
// If the cursor is in the top part of the list
if (m_Rows[iCursor].yPos < yIdeal)
yCursor = m_Rows[iCursor].yPos;
// If the total number of lines is less than the whole rect
else if (m_cyTotalHeight < RectHeight(rcRect))
yCursor = m_Rows[iCursor].yPos;
// If the cursor is in the bottom part of the list
else if ((m_cyTotalHeight - m_Rows[iCursor].yPos) < (RectHeight(rcRect) - yIdeal))
yCursor = (RectHeight(rcRect) - (m_cyTotalHeight - m_Rows[iCursor].yPos));
// The cursor is in the middle of the list
else
yCursor = yIdeal;
// Figure out the item position at which we start painting
int iStart = FindRow(m_Rows[iCursor].yPos - yCursor);
ASSERT(iStart != -1);
if (iStart == -1)
iStart = 0;
//.........这里部分代码省略.........
示例5: PaintText
void CGTextArea::PaintText (CG32bitImage &Dest, const RECT &rcRect)
// PaintText
//
// Paint plain text
{
// Paint the text
if (m_pFont)
{
// If we haven't justified the text for this size, do it now
if (m_cxJustifyWidth != RectWidth(rcRect))
{
m_cxJustifyWidth = RectWidth(rcRect);
m_Lines.DeleteAll();
m_pFont->BreakText(m_sText, m_cxJustifyWidth, &m_Lines, CG16bitFont::SmartQuotes);
}
// Compute the rect within which we draw the text
RECT rcText = rcRect;
if (m_bEditable)
{
int iVSpacing = (RectHeight(rcRect) - m_pFont->GetHeight()) / 2;
rcText.left += iVSpacing;
rcText.right -= iVSpacing;
rcText.top += iVSpacing;
rcText.bottom -= iVSpacing;
}
// Clip to text rect
RECT rcOldClip = Dest.GetClipRect();
Dest.SetClipRect(rcText);
// Figure out how many lines fit in the rect
int iMaxLineCount = RectHeight(rcText) / m_pFont->GetHeight();
// If there are too many lines, and we're editable, start at the end
int iStart = 0;
if (m_bEditable && iMaxLineCount < m_Lines.GetCount())
iStart = m_Lines.GetCount() - iMaxLineCount;
// Paint each line
int x = rcText.left;
int y = rcText.top;
for (int i = iStart; i < m_Lines.GetCount(); i++)
{
CString sLine = m_Lines[i];
// Trim the last space in the line, if necessary
char *pPos = sLine.GetASCIIZPointer();
if (sLine.GetLength() > 0 && pPos[sLine.GetLength() - 1] == ' ')
sLine = strTrimWhitespace(sLine);
// Alignment
int xLine;
if (m_dwStyles & alignCenter)
{
int cxWidth = m_pFont->MeasureText(sLine);
xLine = x + (RectWidth(rcText) - cxWidth) / 2;
}
else if (m_dwStyles & alignRight)
{
int cxWidth = m_pFont->MeasureText(sLine);
xLine = x + (RectWidth(rcRect) - cxWidth);
}
else
xLine = x;
// Paint
if (HasEffects())
m_pFont->DrawTextEffect(Dest, xLine, y, m_rgbColor, sLine, GetEffectCount(), GetEffects());
else
Dest.DrawText(xLine, y, *m_pFont, m_rgbColor, sLine);
// Next
y += m_pFont->GetHeight() + m_cyLineSpacing;
if (y >= rcText.bottom)
break;
}
// Paint the cursor
if (m_bEditable && m_iCursorLine >= iStart)
{
int cxPos = (m_iCursorLine < m_Lines.GetCount() ? m_pFont->MeasureText(CString(m_Lines[m_iCursorLine].GetASCIIZPointer(), m_iCursorPos, true)) : 0);
int y = rcText.top + (m_iCursorLine - iStart) * (m_pFont->GetHeight() + m_cyLineSpacing);
int x = rcText.left;
if (m_dwStyles & alignCenter)
{
//.........这里部分代码省略.........
示例6: Paint
void CGButtonArea::Paint (CG32bitImage &Dest, const RECT &rcRect)
// Paint
//
// Handle paint
{
int i;
// Paint the background
CG32bitPixel rgbBackColor = ((m_bMouseOver && !m_bDisabled) ? m_rgbBackColorHover : (m_bDisabled ? CG32bitPixel(m_rgbBackColor, 0xC0) : m_rgbBackColor));
if (!rgbBackColor.IsNull())
{
if (m_iBorderRadius > 0)
{
CGDraw::RoundedRect(Dest, rcRect.left, rcRect.top, RectWidth(rcRect), RectHeight(rcRect), m_iBorderRadius, rgbBackColor);
CGDraw::RoundedRectOutline(Dest, rcRect.left, rcRect.top, RectWidth(rcRect), RectHeight(rcRect), m_iBorderRadius, 1, m_rgbBorderColor);
}
else
Dest.Fill(rcRect.left, rcRect.top, RectWidth(rcRect), RectHeight(rcRect), rgbBackColor);
}
// Paint the label
int xPaint = rcRect.left + m_rcPadding.left;
int yPaint = rcRect.top + m_rcPadding.top;
if (m_pLabelFont)
{
// If we're disabled, paint gray
if (m_bDisabled)
Dest.DrawText(xPaint,
yPaint,
*m_pLabelFont,
RGB_DISABLED_TEXT,
m_sLabel);
// If we have a prefix accelerator, draw that
else if (!m_sAccelerator.IsBlank())
{
// Measure the size of the accelerator
int cyAccel;
int cxAccel = m_pLabelFont->MeasureText(m_sAccelerator, &cyAccel);
// We draw a rounded-rect box
int cxBox = cxAccel + (2 * ACCEL_INNER_PADDING);
int cyBox = cyAccel + 1;
CGDraw::RoundedRect(Dest, xPaint, yPaint, cxBox, cyBox, ACCEL_BORDER_RADIUS, m_rgbAccelColor);
// Draw the text
Dest.DrawText(xPaint + ACCEL_INNER_PADDING, yPaint, *m_pLabelFont, CG32bitPixel(0, 0, 0), m_sAccelerator);
// Now draw the rest of the label
Dest.DrawText(xPaint + cxBox + (2 * ACCEL_INNER_PADDING), yPaint, *m_pLabelFont, m_rgbLabelColor, m_sLabel);
}
// If we have an accelerator, paint in pieces
else if (m_iAccelerator != -1)
{
char *pPos = m_sLabel.GetASCIIZPointer();
int x = xPaint;
if (m_iAccelerator > 0)
Dest.DrawText(x, yPaint, *m_pLabelFont, m_rgbLabelColor, CString(pPos, m_iAccelerator, true), 0, &x);
Dest.DrawText(x, yPaint, *m_pLabelFont, m_rgbAccelColor, CString(pPos + m_iAccelerator, 1, true), 0, &x);
Dest.DrawText(x, yPaint, *m_pLabelFont, m_rgbLabelColor, CString(pPos + m_iAccelerator + 1, m_sLabel.GetLength() - m_iAccelerator - 1, true));
}
else
Dest.DrawText(xPaint,
yPaint,
*m_pLabelFont,
m_rgbLabelColor,
m_sLabel);
yPaint += m_pLabelFont->GetHeight();
}
// Paint the description
if (m_pDescFont)
{
for (i = 0; i < m_Lines.GetCount(); i++)
{
Dest.DrawText(xPaint,
yPaint,
*m_pDescFont,
m_rgbDescColor,
m_Lines[i]);
yPaint += m_pDescFont->GetHeight();
}
}
//.........这里部分代码省略.........