本文整理汇总了C++中gdiplus::Graphics::FillRectangle方法的典型用法代码示例。如果您正苦于以下问题:C++ Graphics::FillRectangle方法的具体用法?C++ Graphics::FillRectangle怎么用?C++ Graphics::FillRectangle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gdiplus::Graphics
的用法示例。
在下文中一共展示了Graphics::FillRectangle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawGame
void DrawGame(Gdiplus::Graphics &graphics, Game ¤tGame)
{
// Draw background.
graphics.FillRectangle(MY_WHITE_BRUSH, 0, 0, MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT);
// Draw end.
const MazeState ¤tMazeState = currentGame.CurrentState();
graphics.FillRectangle(
WEAK_BLACK_BRUSH,
static_cast<INT>(currentMazeState.end[0] * MAZE_GRID_CELL_SIZE + 2),
static_cast<INT>(currentMazeState.end[1] * MAZE_GRID_CELL_SIZE + 2),
static_cast<INT>(MAZE_GRID_CELL_SIZE - 5),
static_cast<INT>(MAZE_GRID_CELL_SIZE - 5));
// Draw player.
graphics.FillEllipse(
MY_RED_BRUSH,
static_cast<INT>(currentMazeState.currentPosition[0] * MAZE_GRID_CELL_SIZE + 2),
static_cast<INT>(currentMazeState.currentPosition[1] * MAZE_GRID_CELL_SIZE + 2),
static_cast<INT>(MAZE_GRID_CELL_SIZE - 4),
static_cast<INT>(MAZE_GRID_CELL_SIZE - 4));
// Draw maze jumps.
int numJumps = currentMazeState.jumps.size();
for (int i = 0; i < numJumps; ++i) {
graphics.FillEllipse(
MY_BLUE_BRUSH,
static_cast<INT>(currentMazeState.jumps[i].array[0] * MAZE_GRID_CELL_SIZE + 3),
static_cast<INT>(currentMazeState.jumps[i].array[1] * MAZE_GRID_CELL_SIZE + 3),
static_cast<INT>(MAZE_GRID_CELL_SIZE - 5),
static_cast<INT>(MAZE_GRID_CELL_SIZE - 5));
}
// Draw maze.
graphics.DrawRectangle(
MY_BLACK_PEN,
0, 0,
MAZE_GRID_CELL_SIZE * MAZE_GRID_WIDTH, MAZE_GRID_CELL_SIZE * MAZE_GRID_HEIGHT);
for (int j = 0; j < MAZE_GRID_HEIGHT; ++j) {
for (int i = 0; i < MAZE_GRID_WIDTH; ++i) {
if (currentMazeState.cellFlags[j][i] & CELL_WALL_UP) {
graphics.DrawLine(
MY_BLACK_PEN,
static_cast<INT>(MAZE_GRID_CELL_SIZE * i), static_cast<INT>(MAZE_GRID_CELL_SIZE * j),
static_cast<INT>(MAZE_GRID_CELL_SIZE * (i+1)), static_cast<INT>(MAZE_GRID_CELL_SIZE * j));
}
if (currentMazeState.cellFlags[j][i] & CELL_WALL_LEFT) {
graphics.DrawLine(
MY_BLACK_PEN,
static_cast<INT>(MAZE_GRID_CELL_SIZE * i), static_cast<INT>(MAZE_GRID_CELL_SIZE * j),
static_cast<INT>(MAZE_GRID_CELL_SIZE * i), static_cast<INT>(MAZE_GRID_CELL_SIZE * (j+1)));
}
}
}
}
示例2: Draw
void CRectangle::Draw(Gdiplus::Graphics& graphics)
{
// SolidBrush brush(Color::Black);
SolidBrush brush(_fill_color);
graphics.FillRectangle(&brush, _rect);
Pen pen(_border_color, 5);
graphics.DrawRectangle(&pen, _rect);
}
示例3: DrawFilledRect
void GdiplusGfx::DrawFilledRect(const GfxRect& r, GfxCol col)
{
SolidBrush br(GfxColToARGB(col));
#if 0
float x = (float)r.x - 0.5f;
float y = (float)r.y - 0.5f;
#else
float x = (float)r.x;
float y = (float)r.y;
#endif
Gdiplus::RectF r2(x, y, r.dx, r.dy);
g->FillRectangle(&br, r2);
}
示例4: RenderFontShadow
bool PngOutlineText::RenderFontShadow(
Gdiplus::Graphics* pGraphicsDrawn,
Gdiplus::Graphics* pGraphicsMask,
Gdiplus::Bitmap* pBitmapDrawn,
Gdiplus::Bitmap* pBitmapMask,
Gdiplus::FontFamily* pFontFamily,
Gdiplus::FontStyle fontStyle,
int nfontSize,
const wchar_t*pszText,
Gdiplus::Rect rtDraw,
Gdiplus::StringFormat* pStrFormat)
{
if(!pGraphicsDrawn||!pGraphicsMask||!pBitmapDrawn||!pBitmapMask) return false;
Gdiplus::Bitmap* pBitmapShadowMask =
m_pPngBitmap->Clone(0, 0, m_pPngBitmap->GetWidth(), m_pPngBitmap->GetHeight(), PixelFormat32bppARGB);
Gdiplus::Graphics* pGraphicsShadowMask = new Gdiplus::Graphics((Gdiplus::Image*)(pBitmapShadowMask));
Gdiplus::SolidBrush brushBlack(Gdiplus::Color(0,0,0));
pGraphicsShadowMask->FillRectangle(&brushBlack, 0, 0, m_pPngBitmap->GetWidth(), m_pPngBitmap->GetHeight() );
pGraphicsShadowMask->SetCompositingMode(pGraphicsDrawn->GetCompositingMode());
pGraphicsShadowMask->SetCompositingQuality(pGraphicsDrawn->GetCompositingQuality());
pGraphicsShadowMask->SetInterpolationMode(pGraphicsDrawn->GetInterpolationMode());
pGraphicsShadowMask->SetSmoothingMode(pGraphicsDrawn->GetSmoothingMode());
pGraphicsShadowMask->SetTextRenderingHint(pGraphicsDrawn->GetTextRenderingHint());
pGraphicsShadowMask->SetPageUnit(pGraphicsDrawn->GetPageUnit());
pGraphicsShadowMask->SetPageScale(pGraphicsDrawn->GetPageScale());
bool b = false;
b = m_pFontBodyShadowMask->DrawString(
pGraphicsMask,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
b = m_pShadowStrategyMask->DrawString(
pGraphicsShadowMask,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
b = m_pFontBodyShadow->DrawString(
pGraphicsDrawn,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
b = m_pShadowStrategy->DrawString(
pGraphicsDrawn,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
UINT* pixelsDest = NULL;
UINT* pixelsMask = NULL;
UINT* pixelsShadowMask = NULL;
using namespace Gdiplus;
BitmapData bitmapDataDest;
BitmapData bitmapDataMask;
BitmapData bitmapDataShadowMask;
Rect rect(0, 0, m_pBkgdBitmap->GetWidth(), m_pBkgdBitmap->GetHeight() );
pBitmapDrawn->LockBits(
&rect,
ImageLockModeWrite,
PixelFormat32bppARGB,
&bitmapDataDest );
pBitmapMask->LockBits(
&rect,
ImageLockModeWrite,
PixelFormat32bppARGB,
&bitmapDataMask );
pBitmapShadowMask->LockBits(
&rect,
//.........这里部分代码省略.........
示例5: Draw
void Chart::Draw(Gdiplus::Graphics &graph)
{
g = &graph;
graph.FillRectangle(&SolidBrush(Color(0xffaaaaaa)), rect.left, rect.top, rect.right, rect.bottom);
}
示例6: rc
void CSkinButton2::DrawFrame(Gdiplus::Graphics& gdi,CRect& rect)
{
if( m_enmuDrawType == NO_FRAME )
{
Gdiplus::Pen pen1( m_colFrame1 );
gdi.DrawLine( &pen1, rect.left+1, rect.top, rect.right-2, rect.top );
gdi.DrawLine( &pen1, rect.left+1, rect.bottom-1, rect.right-2, rect.bottom-1 );
gdi.DrawLine( &pen1, rect.left, rect.top+1, rect.left, rect.bottom-2 );
gdi.DrawLine( &pen1, rect.right-1, rect.top+1, rect.right-1, rect.bottom-2 );
Gdiplus::Color colpix;
pen1.GetColor( &colpix );
colpix.SetValue( Gdiplus::Color::MakeARGB(colpix.GetA()/2,colpix.GetR(),colpix.GetG(),colpix.GetB() ) );
Gdiplus::Pen penPix1( colpix );
gdi.DrawLine( &penPix1, rect.left, rect.top, rect.left+1, rect.top );
gdi.DrawLine( &penPix1, rect.right-1, rect.top, rect.right-1, rect.top+1 );
gdi.DrawLine( &penPix1, rect.right-1, rect.bottom-1, rect.right-2, rect.bottom-1 );
gdi.DrawLine( &penPix1, rect.left, rect.bottom-1, rect.left+1, rect.bottom-1 );
CRect rect2 = rect;
::InflateRect( &rect2, -1,-1 );
if( !m_bMouseDown )
{
Gdiplus::Pen pen2(m_colFrame2);
if( m_bMouseDown )
pen2.SetColor(m_colFrame1);
else
pen2.SetColor(m_colFrame2);
gdi.DrawLine( &pen2, rect2.left+1, rect2.top, rect2.right-2, rect2.top );
gdi.DrawLine( &pen2, rect2.left+1, rect2.bottom-1, rect2.right-2, rect2.bottom-1 );
gdi.DrawLine( &pen2, rect2.left, rect2.top+1, rect2.left, rect2.bottom-2 );
gdi.DrawLine( &pen2, rect2.right-1, rect2.top+1, rect2.right-1, rect2.bottom-2 );
Gdiplus::Color colpix2;
pen2.GetColor( &colpix2 );
colpix2.SetValue( Gdiplus::Color::MakeARGB(colpix2.GetA()/2,colpix2.GetR(),colpix2.GetG(),colpix2.GetB() ) );
Gdiplus::Pen penPix2( colpix2 );
gdi.DrawLine( &penPix2, rect2.left, rect2.top, rect2.left+1, rect2.top );
gdi.DrawLine( &penPix2, rect2.right-1, rect2.top, rect2.right-1, rect2.top+1 );
gdi.DrawLine( &penPix2, rect2.right-1, rect2.bottom-1, rect2.right-2, rect2.bottom-1 );
gdi.DrawLine( &penPix2, rect2.left, rect2.bottom-1, rect2.left+1, rect2.bottom-1 );
}
if( m_bMouseDown )
{
Gdiplus::RectF rc( rect2.left, rect2.top, rect2.Width(), rect2.Height()/3 );
Gdiplus::Color colBrush1,colBrush2;
colBrush1.SetValue( Gdiplus::Color::MakeARGB(15,1,1,1) );
colBrush2.SetValue( Gdiplus::Color::MakeARGB(0,1,1,1) );
LinearGradientBrush brush( rc, colBrush1, colBrush2,LinearGradientModeVertical );
gdi.FillRectangle( &brush, rc );
}
else
{
Gdiplus::RectF rc( rect2.left, rect2.top, rect2.Width(), rect2.Height()/2 );
rc.Inflate(-1,-1);
LinearGradientBrush brush( rc, m_colBrush1, m_colBrush2,LinearGradientModeVertical );
gdi.FillRectangle( &brush, rc );
}
return;
}
else if( m_enmuDrawType == NO_FRAME_SELECT )
{
Gdiplus::Pen pen1( m_colFrame1 );
gdi.DrawLine( &pen1, rect.left+1, rect.top, rect.right-2, rect.top );
gdi.DrawLine( &pen1, rect.left+1, rect.bottom-1, rect.right-2, rect.bottom-1 );
gdi.DrawLine( &pen1, rect.left, rect.top+1, rect.left, rect.bottom-2 );
gdi.DrawLine( &pen1, rect.right-1, rect.top+1, rect.right-1, rect.bottom-2 );
Gdiplus::Color colpix;
pen1.GetColor( &colpix );
colpix.SetValue( Gdiplus::Color::MakeARGB(colpix.GetA()/2,colpix.GetR(),colpix.GetG(),colpix.GetB() ) );
Gdiplus::Pen penPix1( colpix );
gdi.DrawLine( &penPix1, rect.left, rect.top, rect.left+1, rect.top );
gdi.DrawLine( &penPix1, rect.right-1, rect.top, rect.right-1, rect.top+1 );
gdi.DrawLine( &penPix1, rect.right-1, rect.bottom-1, rect.right-2, rect.bottom-1 );
gdi.DrawLine( &penPix1, rect.left, rect.bottom-1, rect.left+1, rect.bottom-1 );
CRect rect2 = rect;
::InflateRect( &rect2, -1,-1 );
if( !m_bMouseDown )
{
Gdiplus::Pen pen2(m_colFrame2);
if( m_bMouseDown )
pen2.SetColor(m_colFrame1);
else
pen2.SetColor(m_colFrame2);
gdi.DrawLine( &pen2, rect2.left+1, rect2.top, rect2.right-2, rect2.top );
gdi.DrawLine( &pen2, rect2.left+1, rect2.bottom-1, rect2.right-2, rect2.bottom-1 );
gdi.DrawLine( &pen2, rect2.left, rect2.top+1, rect2.left, rect2.bottom-2 );
gdi.DrawLine( &pen2, rect2.right-1, rect2.top+1, rect2.right-1, rect2.bottom-2 );
Gdiplus::Color colpix2;
pen2.GetColor( &colpix2 );
colpix2.SetValue( Gdiplus::Color::MakeARGB(colpix2.GetA()/2,colpix2.GetR(),colpix2.GetG(),colpix2.GetB() ) );
Gdiplus::Pen penPix2( colpix2 );
//.........这里部分代码省略.........
示例7: PluginUpdateOverlay
//
// Draw overlay
//
PLUGIN_EXPORT void PluginUpdateOverlay()
{
if (!pRenderHelper)
return;
// lock overlay image
auto pLock = pRenderHelper->BeginFrame();
if (!pLock)
return;
int w = pLock->dwWidth;
int h = pLock->dwHeight;
Gdiplus::Graphics *pGraphics = pRenderHelper->GetGraphics();
//-----------------------------------------
// draw Text Overlay
// set options
pGraphics->SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
// clear back
pGraphics->Clear(Gdiplus::Color(0, 0, 0, 0));
WCHAR s[128];
_itow_s(PC_GetConfirmedProcessID(), s, 10);
if (PathFileExists(pFileName)) {
string textContents = "";
WIN32_FILE_ATTRIBUTE_DATA attribs;
GetFileAttributesExW(pFileName, GetFileExInfoStandard, &attribs);
FILETIME modifyTime = attribs.ftLastWriteTime;
if (CompareFileTime(&modifyTime, &oldModifyTime) > 0) {
oldModifyTime = modifyTime;
string line;
ifstream myfile;
myfile.open(pFileName);
if (myfile.is_open())
{
while (getline(myfile, line))
{
textContents += line;
}
myfile.close();
}
textLength = textContents.length();
wcTextContents[textLength] = 0;
std::copy(textContents.begin(), textContents.end(), wcTextContents);
}
}
// draw back if required
if (bShowBackground)
{
Gdiplus::RectF bound;
pRenderHelper->GetTextExtent(wcTextContents, pFont, &bound);
pGraphics->FillRectangle(pBackBrush, bound);
}
// draw text
Gdiplus::RectF bound;
pRenderHelper->GetTextExtent(wcTextContents, pFont, &bound);
if (bound.Width > w) {
wchar_t wcNewTextContents[256];
wcNewTextContents[textLength * 2 + 5] = 0;
swprintf_s(wcNewTextContents, L"%s %s", wcTextContents, wcTextContents);
Gdiplus::RectF newbound;
pRenderHelper->GetTextExtent(wcNewTextContents, pFont, &newbound);
pRenderHelper->DrawString(wcNewTextContents, pFont, Gdiplus::Point(0 - scroll, 0), pTextBrush, pBackBrush);
scroll += 2;
if (scroll > newbound.Width - bound.Width)
scroll = 0;
}
else {
pRenderHelper->DrawString(wcTextContents, pFont, Gdiplus::Point(0, 0), pTextBrush, pBackBrush);
}
// fill overlay image
pRenderHelper->EndFrame();
}
示例8: DrawItem
//.........这里部分代码省略.........
path->AddLine(rx.X + rx.Width, rx.Y + rx.Height, rx.X, rx.Y + rx.Height);
path->AddLine(rx.X, rx.Y, rx.X + shadowb, rx.Y + rx.Height - shadowb);
path->CloseFigure();
SolidBrush brush(0xff000000);
gt.FillPath(&brush, path);
tmp.Blur(tmp.Rect(), CRect(0, 0, 0, 0), shadowb);
g.DrawImage(tmp.bmp, rf, shadowb, shadowb, rf.Width, rf.Height, UnitPixel);
delete path;
}
}
Font font(L"Arial", item->selected ? 8.0f : 8.0f);
StringFormat *stringFormat = new StringFormat();
stringFormat->SetAlignment(StringAlignmentCenter);
stringFormat->SetLineAlignment(StringAlignmentCenter);
stringFormat->SetTrimming(StringTrimmingEllipsisCharacter);
stringFormat->SetFormatFlags(StringFormatFlagsLineLimit);
if(item->icon->Ready())
{
g.SetInterpolationMode(InterpolationModeBicubic);
rx = rf;
rx.Y += 6;
rx.Height -= (20 + rx.Y);
rx.Width = rx.Height;
rx.X += (rf.Width - rx.Width) / 2;
if(item->selected)
{
rx.Y++;
#define shadow 5
CDIB tmp;
tmp.Resize(item->icon->Width(), item->icon->Height());
if(tmp.Ready())
{
tmp.Draw(CRect(shadow, shadow,
item->icon->Width() - shadow,
item->icon->Height() - shadow),
item->icon->Rect(), item->icon);
DIB_ARGB *p = tmp.scan0;
int size = tmp.Width() * tmp.Height();
for(int i = 0; i < size; i++, p++)
{
p->r = 0;
p->g = 0;
p->b = 0;
}
tmp.Blur(tmp.Rect(), CRect(0, 0, 0, 0), shadow);
g.DrawImage(tmp.bmp, RectF(rx.X, rx.Y + shadow, rx.Width, rx.Height));
}
tmp.Assign(item->icon);
/*if(tmp.Ready())
{
DIB_ARGB *p = tmp.scan0;
int size = tmp.Width() * tmp.Height();
for(int i = 0; i < size; i++, p++)
{
p->r = 0x6f;
p->g = 0xa6;
p->b = 0xde;
}
}*/
g.DrawImage(tmp.bmp, rx);
}
else
{
g.DrawImage(item->icon->bmp, rx);
}
}
SolidBrush brush(0xff000000);
rx = rf;
rx.Height = 20;
rx.Y = rf.Height - rx.Height;
rx.Y++;
g.DrawString(item->text.GetBuffer(), item->text.GetLength(), &font, rx, stringFormat, &brush);
brush.SetColor(item->selected && false ? 0xff6fa6de : 0xfff0f0f0);
rx.Y--;
g.DrawString(item->text.GetBuffer(), item->text.GetLength(), &font, rx, stringFormat, &brush);
delete stringFormat;
//POSITION p = items.Find(item);
//items.GetNext(p);
//if(p)
{
RectF rx = rf;
rx.X += rx.Width - 1;
rx.Width = 1;
LinearGradientBrush brush(rx, Color(140, 0x69, 0x69, 0x69), Color(0x69, 0x69, 0x69), LinearGradientModeVertical);
g.FillRectangle(&brush, rx);
}
}
示例9: DrawEmpty
void CSimplePanelDlg::DrawEmpty(Gdiplus::Graphics& gr, CRect& rc)
{
//每次先刷新背景
Gdiplus::Color cl = Gdiplus::Color::White;
Gdiplus::SolidBrush brush(cl);
gr.FillRectangle(&brush, 0, 0, rc.Width(), rc.Height());
//显示线路号背景
Gdiplus::PointF pointLineBK(60, 0);
gr.DrawImage(m_pImLineBK, pointLineBK);
int nWidth = m_pImLineBK->GetWidth();
int nHeight = m_pImLineBK->GetHeight();
//显示--
CString strLineNum = "--";
Gdiplus::SolidBrush brushLineNum(Gdiplus::Color::White);
WCHAR wcLineNum[6] = {0};
MultiByteToWideChar(CP_ACP, 0, (char*)(LPCTSTR)strLineNum, strLineNum.GetLength(), wcLineNum, sizeof(wcLineNum));
Gdiplus::PointF pointLineNum = pointLineBK;
Gdiplus::RectF rectLineNum(pointLineNum, Gdiplus::SizeF(nWidth, nHeight));
Gdiplus::Font fontLineNum(L"helvetica", 42 , Gdiplus::FontStyleBold, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatLineNum;
stringFormatLineNum.SetAlignment(Gdiplus::StringAlignmentCenter);
stringFormatLineNum.SetLineAlignment(Gdiplus::StringAlignmentCenter);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wcLineNum, wcslen(wcLineNum), &fontLineNum, rectLineNum, &stringFormatLineNum, &brushLineNum);
//显示路
std::wstring str = L"路";
Gdiplus::SolidBrush brushLu(Gdiplus::Color::White);
Gdiplus::PointF pointWord = pointLineBK;
pointWord.X += 0.75 * nWidth;
Gdiplus::RectF rectWord(pointWord, Gdiplus::SizeF(40, nHeight - 5));
Gdiplus::Font fontLu(L"方正兰亭黑简体", 24 , Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatWord;
stringFormatWord.SetAlignment(Gdiplus::StringAlignmentNear);
stringFormatWord.SetLineAlignment(Gdiplus::StringAlignmentFar);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(str.c_str(), str.size(), &fontLu, rectWord, &stringFormatWord, &brushLu);
//第一辆车距离站
if(1)
{
CString strNum = "- -";
Gdiplus::SolidBrush brushNum(Gdiplus::Color(149,158,168));
WCHAR wcNum[6] = {0};
MultiByteToWideChar(CP_ACP, 0, (char*)(LPCTSTR)strNum, strNum.GetLength(), wcNum, sizeof(wcNum));
Gdiplus::PointF pointNum(60 + nWidth, 0);
Gdiplus::RectF rectNum(pointNum, Gdiplus::SizeF(145, nHeight));
Gdiplus::Font fontNum(L"helvetica", 42 , Gdiplus::FontStyleBold, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatNum;
stringFormatNum.SetAlignment(Gdiplus::StringAlignmentCenter);
stringFormatNum.SetLineAlignment(Gdiplus::StringAlignmentCenter);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wcNum, wcslen(wcNum), &fontNum, rectNum, &stringFormatNum, &brushNum);
std::wstring wstr = L"站";
Gdiplus::SolidBrush brushZhan(Gdiplus::Color(149,158,168));
Gdiplus::PointF pointZhan(60 + nWidth + 0.7 * 145, 0);
Gdiplus::RectF rectZhan(pointZhan, Gdiplus::SizeF(40, nHeight - 5));
Gdiplus::Font fontZhan(L"方正兰亭黑简体", 24 , Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatZhan;
stringFormatZhan.SetAlignment(Gdiplus::StringAlignmentNear);
stringFormatZhan.SetLineAlignment(Gdiplus::StringAlignmentFar);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wstr.c_str(), wstr.size(), &fontZhan, rectZhan, &stringFormatZhan, &brushZhan);
}
if(1)
{
//第二辆车距离站
CString strNum = "- -";
Gdiplus::SolidBrush brushNum(Gdiplus::Color(149,158,168));
WCHAR wcNum[6] = {0};
MultiByteToWideChar(CP_ACP, 0, (char*)(LPCTSTR)strNum, strNum.GetLength(), wcNum, sizeof(wcNum));
Gdiplus::PointF pointNum(60 + nWidth + 145, 0);
Gdiplus::RectF rectNum(pointNum, Gdiplus::SizeF(145, nHeight));
Gdiplus::Font fontNum(L"helvetica", 42 , Gdiplus::FontStyleBold, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatNum;
stringFormatNum.SetAlignment(Gdiplus::StringAlignmentCenter);
stringFormatNum.SetLineAlignment(Gdiplus::StringAlignmentCenter);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wcNum, wcslen(wcNum), &fontNum, rectNum, &stringFormatNum, &brushNum);
std::wstring wstr = L"站";
Gdiplus::SolidBrush brushZhan(Gdiplus::Color(149,158,168));
//.........这里部分代码省略.........
示例10: DrawArrive
void CSimplePanelDlg::DrawArrive(Gdiplus::Graphics& gr, vector<BusArrivalInfo>& vecArrival, CRect& rc, CData* pData)
{
//每次先刷新背景
Gdiplus::Color cl = Gdiplus::Color::White;
Gdiplus::SolidBrush brush(cl);
gr.FillRectangle(&brush, 0, 0, rc.Width(), rc.Height());
//显示线路号背景
Gdiplus::PointF pointLineBK(60, 0);
gr.DrawImage(m_pImLineBK, pointLineBK);
int nWidth = m_pImLineBK->GetWidth();
int nHeight = m_pImLineBK->GetHeight();
//显示线路号
CString strLineNum = pData->GetLineNumber();
Gdiplus::SolidBrush brushLineNum(Gdiplus::Color::White);
WCHAR wcLineNum[6] = {0};
MultiByteToWideChar(CP_ACP, 0, (char*)(LPCTSTR)strLineNum, strLineNum.GetLength(), wcLineNum, sizeof(wcLineNum));
Gdiplus::PointF pointLineNum = pointLineBK;
Gdiplus::RectF rectLineNum(pointLineNum, Gdiplus::SizeF(nWidth, nHeight));
Gdiplus::Font fontLineNum(L"helvetica", 42 , Gdiplus::FontStyleBold, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatLineNum;
stringFormatLineNum.SetAlignment(Gdiplus::StringAlignmentCenter);
stringFormatLineNum.SetLineAlignment(Gdiplus::StringAlignmentCenter);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wcLineNum, wcslen(wcLineNum), &fontLineNum, rectLineNum, &stringFormatLineNum, &brushLineNum);
//显示路
std::wstring str = L"路";
Gdiplus::SolidBrush brushLu(Gdiplus::Color::White);
Gdiplus::PointF pointWord = pointLineBK;
pointWord.X += 0.75 * nWidth;
Gdiplus::RectF rectWord(pointWord, Gdiplus::SizeF(40, nHeight - 5));
Gdiplus::Font fontLu(L"方正兰亭黑简体", 24 , Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatWord;
stringFormatWord.SetAlignment(Gdiplus::StringAlignmentNear);
stringFormatWord.SetLineAlignment(Gdiplus::StringAlignmentFar);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(str.c_str(), str.size(), &fontLu, rectWord, &stringFormatWord, &brushLu);
if(0 < vecArrival.size())
{
//显示第一辆车到站
BusArrivalInfo& stArrive = vecArrival[0];
if(stArrive.iNum > 0)
{
//距离站
CString strNum;
strNum.Format("%d", stArrive.iNum);
Gdiplus::SolidBrush brushNum(Gdiplus::Color(23,117,231));
WCHAR wcNum[6] = {0};
MultiByteToWideChar(CP_ACP, 0, (char*)(LPCTSTR)strNum, strNum.GetLength(), wcNum, sizeof(wcNum));
Gdiplus::PointF pointNum(60 + nWidth, 0);
Gdiplus::RectF rectNum(pointNum, Gdiplus::SizeF(145, nHeight));
Gdiplus::Font fontNum(L"helvetica", 42 , Gdiplus::FontStyleBold, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatNum;
stringFormatNum.SetAlignment(Gdiplus::StringAlignmentCenter);
stringFormatNum.SetLineAlignment(Gdiplus::StringAlignmentCenter);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wcNum, wcslen(wcNum), &fontNum, rectNum, &stringFormatNum, &brushNum);
std::wstring wstr = L"站";
Gdiplus::SolidBrush brushZhan(Gdiplus::Color(149,158,168));
Gdiplus::PointF pointZhan(60 + nWidth + 145 - 32, 0);
Gdiplus::RectF rectZhan(pointZhan, Gdiplus::SizeF(40, nHeight - 5));
Gdiplus::Font fontZhan(L"方正兰亭黑简体", 24 , Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatZhan;
stringFormatZhan.SetAlignment(Gdiplus::StringAlignmentNear);
stringFormatZhan.SetLineAlignment(Gdiplus::StringAlignmentFar);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wstr.c_str(), wstr.size(), &fontZhan, rectZhan, &stringFormatZhan, &brushZhan);
}
else if(stArrive.iNum == 0)
{
if(stArrive.iDistance <= 50)
{
std::wstring wstr = L"已经进站";
Gdiplus::SolidBrush brushZhan(Gdiplus::Color(23,117,231));
Gdiplus::PointF pointZhan(60 + nWidth, 0);
Gdiplus::RectF rectZhan(pointZhan, Gdiplus::SizeF(145, nHeight - 5));
Gdiplus::Font fontZhan(L"方正兰亭黑简体", 24 , Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);
Gdiplus::StringFormat stringFormatZhan;
stringFormatZhan.SetAlignment(Gdiplus::StringAlignmentFar);
stringFormatZhan.SetLineAlignment(Gdiplus::StringAlignmentFar);
gr.SetTextRenderingHint(Gdiplus::TextRenderingHintAntiAlias);
gr.DrawString(wstr.c_str(), wstr.size(), &fontZhan, rectZhan, &stringFormatZhan, &brushZhan);
}
else
//.........这里部分代码省略.........
示例11: DrawBackground
void CStartupView::DrawBackground(Gdiplus::Graphics &graphics)
{
CSize siTotal = GetTotalSize();
CRect rcClient(0, 0, siTotal.cx, siTotal.cy);
CRect rc;
GetClientRect(&rc);
/* int iLeft = 6;
int iRight = 13;
int iMiddle = rcClient.Width() - iLeft - iRight;*/
Gdiplus::Rect gdipRcClient(rcClient.left, rcClient.top, rcClient.Width(), rcClient.Height());
Gdiplus::SolidBrush bgBrush(Gdiplus::Color(255, 238, 238, 238));
graphics.FillRectangle(&bgBrush, gdipRcClient);
Gdiplus::REAL offsetY = (Gdiplus::REAL)OFFSET_Y;
Gdiplus::REAL y = offsetY;
float fHeight = (Gdiplus::REAL)TOP_HEIGHT;
Gdiplus::RectF gdipRcLeft;
Gdiplus::RectF gdipRcMiddle;
Gdiplus::RectF gdipRcRight;
CalculateBkgRects(gdipRcLeft, gdipRcMiddle, gdipRcRight, y, fHeight);
graphics.DrawImage(m_pBmpTopLeft, gdipRcLeft);
graphics.DrawImage(m_pBmpTopMiddle, gdipRcMiddle, 0.0, 0.0, 1.0, (Gdiplus::REAL)fHeight, Gdiplus::UnitPixel);
graphics.DrawImage(m_pBmpTopRight, gdipRcRight);
fHeight = (Gdiplus::REAL)BLUE_HEIGHT;
CalculateBkgRects(gdipRcLeft, gdipRcMiddle, gdipRcRight, y, fHeight);
graphics.DrawImage(m_pBmpBlueLeft, gdipRcLeft);
graphics.DrawImage(m_pBmpBlueMiddle, gdipRcMiddle, 0.0, 0.0, 1.0, (Gdiplus::REAL)fHeight, Gdiplus::UnitPixel);
graphics.DrawImage(m_pBmpBlueRight, gdipRcRight);
fHeight =(Gdiplus::REAL)( rcClient.Height() - OFFSET_Y - TOP_HEIGHT - BLUE_HEIGHT - LIGHT_BLUE_HEIGHT - FOOT_HEIGHT);
CalculateBkgRects(gdipRcLeft, gdipRcMiddle, gdipRcRight, y, fHeight);
graphics.DrawImage(m_pBmpWhiteLeft, gdipRcLeft/*, 0.0, 0.0, 1.0, (Gdiplus::REAL)296, Gdiplus::UnitPixel*/);
graphics.DrawImage(m_pBmpWhiteMiddle, gdipRcMiddle, 0.0, 0.0, 1.0, (Gdiplus::REAL)296, Gdiplus::UnitPixel);
graphics.DrawImage(m_pBmpWhiteRight, gdipRcRight/*, 0.0, 0.0, 1.0, (Gdiplus::REAL)296, Gdiplus::UnitPixel*/);
fHeight = (Gdiplus::REAL)LIGHT_BLUE_HEIGHT;
y--;
CalculateBkgRects(gdipRcLeft, gdipRcMiddle, gdipRcRight, y , fHeight);
graphics.DrawImage(m_pBmpLightBlueLeft, gdipRcLeft);
graphics.DrawImage(m_pBmpLightBlueMiddle, gdipRcMiddle, 0.0, 0.0, 1.0, (Gdiplus::REAL)fHeight, Gdiplus::UnitPixel);
graphics.DrawImage(m_pBmpLightBlueRight, gdipRcRight);
fHeight = (Gdiplus::REAL)FOOT_HEIGHT;
CalculateBkgRects(gdipRcLeft, gdipRcMiddle, gdipRcRight, y, fHeight);
graphics.DrawImage(m_pBmpFootLeft, gdipRcLeft);
graphics.DrawImage(m_pBmpFootMiddle, gdipRcMiddle, 0.0, 0.0, 1.0, (Gdiplus::REAL)fHeight, Gdiplus::UnitPixel);
graphics.DrawImage(m_pBmpFootRight, gdipRcRight);
Gdiplus::Color colorFrom[] = {Gdiplus::Color(255, 220, 223, 224),
Gdiplus::Color(255, 215, 215, 215),
Gdiplus::Color(255, 216, 216, 216),
Gdiplus::Color(255, 219, 219, 219),
Gdiplus::Color(255, 223, 223, 223),
Gdiplus::Color(255, 226, 226, 226),
Gdiplus::Color(255, 229, 229, 229),
Gdiplus::Color(255, 231, 231, 231),
};
Gdiplus::Color colorTo[] = {Gdiplus::Color(255, 198, 199, 201),
Gdiplus::Color(255, 185, 185, 185),
Gdiplus::Color(255, 190, 190, 190),
Gdiplus::Color(255, 197, 197, 197),
Gdiplus::Color(255, 203, 203, 203),
Gdiplus::Color(255, 213, 213, 213),
Gdiplus::Color(255, 218, 218, 218),
Gdiplus::Color(255, 226, 226, 226),
};
Gdiplus::RectF gdipRcM2;
for(int i = 0; i < 8; i++)
{
gdipRcM2.X = gdipRcMiddle.X + gdipRcMiddle.Width - 30.0;
gdipRcM2.Y = gdipRcMiddle.Y + gdipRcMiddle.Height - 8 + i;
gdipRcM2.Width = 30.0;
gdipRcM2.Height = 1.0;
Gdiplus::LinearGradientBrush gradientBrush(gdipRcM2,
colorFrom[i],
colorTo[i],
Gdiplus::LinearGradientModeHorizontal);
graphics.FillRectangle(&gradientBrush, gdipRcM2);
}
}
示例12: fill_rect
virtual void fill_rect(ft x, ft y, ft w, ft h)
{
Gdiplus::SolidBrush* brush = new Gdiplus::SolidBrush(*color);
graphics->FillRectangle(brush, Gdiplus::Rect((st)x, (st)y, (st)w, (st)h));
delete brush;
}
示例13: fill_gradient_rect
void fill_gradient_rect(const Rect* r, const Color* c1, const Color* c2, const Point* p1, const Point* p2)
{
Gdiplus::LinearGradientBrush* brush = new Gdiplus::LinearGradientBrush(TO_POINT(p1), TO_POINT(p2), TO_COLOR(c1), TO_COLOR(c2));
graphics->FillRectangle(brush, TO_RECT(r));
delete brush;
}
示例14: FillRectInt
void CanvasGdiplus::FillRectInt(const Brush& brush,
int x, int y, int w, int h)
{
Gdiplus::Graphics* current = GetCurrentGraphics();
current->FillRectangle(brush.GetNativeBrush(), x, y, w, h);
}
示例15: FillRectangle
void Graphics::FillRectangle(Brush* brush, const Rect& rc) {
Gdiplus::Graphics* g = reinterpret_cast<Gdiplus::Graphics*>(_private);
Gdiplus::Brush* gdiBrush = reinterpret_cast<Gdiplus::Brush*>(brush->_private);
g->FillRectangle(gdiBrush, ToGDIRect<Rect, Gdiplus::Rect>(rc));
}