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)); Gdiplus::PointF pointZhan(60 + nWidth + 0.7 * 145 + 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); } }
void CDigitalStatusPrinter::PrintSinglTable(QPainter*p) { int textWidth = p->window().width(); int textHeight = p->window().height(); QFontMetrics metics(m_font); QString strXuhao = QString("序号"); QString strDesc = QString("描述");// : 实际值"); QString strMaohao = QString(":"); QString strActual = QString("实际值"); int nDescWidth = metics.width(strDesc); int nDescHeight = metics.height(); printf("nDescHeight=%d\n",nDescHeight); DigitalStatusList SettingLst = m_pComTrade->GetDigitalStatusList(); /*m_nCurrentY*/ int nActualWidth = textWidth-m_nLeftMargin-m_nRightMargin; int nActualHeight = textHeight-m_nCurrentY-m_nBottomMargin; int nTableCoumn = nActualHeight/(nDescHeight+minStep)-1; m_nTableColum = nTableCoumn; nActualHeight = (nTableCoumn+1)*(nDescHeight+minStep); p->drawLine(m_nLeftMargin,m_nCurrentY,textWidth-m_nRightMargin,m_nCurrentY); p->drawLine(m_nLeftMargin,m_nCurrentY,m_nLeftMargin,nActualHeight+m_nCurrentY); p->drawLine(nActualWidth/2+m_nLeftMargin,m_nCurrentY,nActualWidth/2+m_nLeftMargin, nActualHeight+m_nCurrentY); //下限不要了 p->drawLine(m_nLeftMargin,nActualHeight+m_nCurrentY,m_nLeftMargin+nActualWidth,nActualHeight+m_nCurrentY); int nTitleWidth = metics.width(strXuhao); int nTitleHeight = metics.height(); int nMaohaoWidth = metics.width(strMaohao); p->drawLine(nTitleWidth+minStep+m_nLeftMargin,m_nCurrentY,nTitleWidth+minStep+m_nLeftMargin,nActualHeight+m_nCurrentY/*textHeight*/); p->drawLine(nActualWidth+m_nLeftMargin,m_nCurrentY,nActualWidth+m_nLeftMargin,nActualHeight+m_nCurrentY/*textHeight*/); QRectF rect(m_nLeftMargin+minStep,m_nCurrentY+minStep,minStep+nTitleWidth,minStep+nTitleHeight); p->drawText(rect,strXuhao); QRectF rect2(minStep+nActualWidth/2+m_nLeftMargin,m_nCurrentY+minStep,minStep+nTitleWidth, minStep+nTitleHeight); p->drawText(rect2,strXuhao); p->drawLine(3*minStep+nActualWidth/2+m_nLeftMargin+nTitleWidth,m_nCurrentY, 3*minStep+nActualWidth/2+m_nLeftMargin+nTitleWidth,nActualHeight+m_nCurrentY/*textHeight*/); QRectF rect3(2*minStep+nTitleWidth+m_nLeftMargin,m_nCurrentY+minStep,nDescWidth,nTitleHeight); p->drawText(rect3,strDesc); QRectF rect4(4*minStep+nActualWidth/2+nTitleWidth+m_nLeftMargin,m_nCurrentY+minStep, nDescWidth,nTitleHeight); p->drawText(rect4,strDesc); QRectF rectMao1(3*nActualWidth/8+m_nLeftMargin,m_nCurrentY+minStep, nMaohaoWidth+minStep,nTitleHeight); p->drawText(rectMao1,strMaohao); QRectF rectMao2(7*nActualWidth/8+m_nLeftMargin,m_nCurrentY+minStep, nMaohaoWidth+minStep,nTitleHeight); p->drawText(rectMao2,strMaohao); int nActualWid = metics.width(strActual); QRectF rectActual1(m_nLeftMargin+nActualWidth/2-minStep-nActualWid,m_nCurrentY+minStep, nActualWid,nTitleHeight); p->drawText(rectActual1,strActual); QRectF rectActual2(m_nLeftMargin+nActualWidth-minStep-nActualWid,m_nCurrentY+minStep, nActualWid,nTitleHeight); p->drawText(rectActual2,strActual); m_nCurrentY = m_nCurrentY+2*minStep+nTitleHeight; for(int nIndex=0;nIndex<m_nTableColum*2;nIndex++) { //int SettingNum = nIndex+nPageIndex*m_nTableColum*2; if(m_nCurrentIndex>=SettingLst.count()) { return; } CDigitalStatus settingValue = SettingLst.at(m_nCurrentIndex); QString strNumber = QString::number(m_nCurrentIndex+1/*nIndex+1*/); //int nY =m_nCurrentY+nIndex*(minStep+nDescHeight); QString strDesc = settingValue.m_strName; QString strValue = QString::number(settingValue.m_nValue)+QString(" "); //左边 if(nIndex<m_nTableColum) { QRectF rectNum(m_nLeftMargin+minStep,m_nCurrentY+nIndex*(minStep+nDescHeight), minStep+nTitleWidth,nTitleHeight); p->drawText(rectNum,strNumber); int nDescWid = metics.width(strDesc); QRectF rectDesc(2*minStep+nTitleWidth+m_nLeftMargin,m_nCurrentY+nIndex*(minStep+nDescHeight), nDescWid, nDescHeight); p->drawText(rectDesc,strDesc); QRectF rectMao(3*nActualWidth/8+m_nLeftMargin,m_nCurrentY+nIndex*(minStep+nDescHeight), nMaohaoWidth,nDescHeight); //p->drawText(rectMao,strMaohao); //计算冒号的位置 int nValueWidth = metics.width(strValue); int nStartPoint = nActualWidth/2-nValueWidth+m_nLeftMargin-minStep; QRectF rectValue(nStartPoint,m_nCurrentY+nIndex*(minStep+nDescHeight), nValueWidth,nDescHeight); p->drawText(rectValue,strValue); //如果值太长了,那就不要冒号了 if(!rectValue.contains(rectMao)) { p->drawText(rectMao,strMaohao); } p->drawLine(m_nLeftMargin,m_nCurrentY+nIndex*(minStep+nDescHeight), m_nLeftMargin+nActualWidth,m_nCurrentY+nIndex*(minStep+nDescHeight)); } //右边 else if(nIndex<m_nTableColum*2&&nIndex>=m_nTableColum) { QRectF rectNum(minStep*2+nActualWidth/2+m_nLeftMargin,m_nCurrentY+(nIndex-m_nTableColum)*(minStep+nDescHeight), nTitleWidth,nTitleHeight); p->drawText(rectNum,strNumber); int nDescWid = metics.width(strDesc); QRectF rectDesc(4*minStep+nTitleWidth+nActualWidth/2+m_nLeftMargin, m_nCurrentY+(nIndex-m_nTableColum)*(minStep+nDescHeight), nDescWid, nDescHeight); //QRectF rectDesc(4*minStep+nTitleWidth+textWidth/2,m_nCurrentY+(nIndex-m_nTableColum)*(minStep+nDescHeight), // 2*minStep+nTitleWidth+5*textWidth/8,m_nCurrentY+(nIndex-m_nTableColum)*(minStep+nDescHeight)+nDescHeight); p->drawText(rectDesc,strDesc); QRectF rectMao(7*nActualWidth/8+m_nLeftMargin,m_nCurrentY+(nIndex-m_nTableColum)*(minStep+nDescHeight), nMaohaoWidth,nDescHeight); //p->drawText(rectMao,strMaohao); int nValueWidth = metics.width(strValue); int nStartPoint = m_nLeftMargin+nActualWidth-nValueWidth-minStep; QRectF rectValue(nStartPoint,m_nCurrentY+(nIndex-m_nTableColum)*(minStep+nDescHeight), nValueWidth,nDescHeight); p->drawText(rectValue,strValue); //如果值太长了,那就不要冒号了 if(!rectValue.contains(rectMao)) { p->drawText(rectMao,strMaohao); } } m_nCurrentIndex++; } //continue print on new page if(m_nCurrentIndex<SettingLst.count()) { m_nCurrentY = m_nTopMargin; m_pPrinter->newPage(); PrintSinglTable(p); } }
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 { 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 { 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); } if(1 < vecArrival.size()) { //显示第二辆车到站 BusArrivalInfo& stArrive = vecArrival[1]; 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 + 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)); Gdiplus::PointF pointZhan(60 + nWidth + 145 + 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 + 145, 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 { std::wstring wstr = L"即将到站"; Gdiplus::SolidBrush brushZhan(Gdiplus::Color(23,117,231)); Gdiplus::PointF pointZhan(60 + nWidth + 145, 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 { std::wstring wstr = L"待发"; Gdiplus::SolidBrush brushZhan(Gdiplus::Color(23,117,231)); Gdiplus::PointF pointZhan(60 + nWidth + 145, 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); } }