📄 stdafx.cpp
字号:
pDC->SelectStockObject(NULL_BRUSH);
pDC->MoveTo(sx,sy);
pDC->LineTo(ex,ey);
pDC->SelectObject(pOldPen);
}
////////////////////////////////////////////////////
//
////////////////////////////////////////////////////
int GetColorValueFromCOLORREF(COLORREF rgb)
{
int ret=0;
COLORREF crColors[40]={
RGB(0,0,0), //黑色 0
RGB(0,0,255), //兰色 1
RGB(0,255,0), //绿色 2
RGB(0,255,255), //青色 3
RGB(255,0,0), //红色 4
RGB(255,0,255), //洋红色 5
RGB(128,128,0), //棕色 6
RGB(192,192,192), //灰色 7
RGB(128,128,128), //深灰色 8
RGB(0,0,128), //深兰色 9
RGB(0,128,0), //深绿色 10
RGB(0,128,128), //深青色 11
RGB(128,0,0), //深红色 12
RGB(128,0,128), //深洋红色 13
RGB(255,255,0), //亮黄色 14
RGB(255,255,255), //亮白色 15
RGB(160,160,164), //亮灰色 16
RGB(192,220,192), //亮绿色 17
RGB(166,202,240), //亮兰色 18
RGB(255,251,240), //米色 19
};
for(int i=0;i<20;i++)
{
if(rgb==crColors[i])
{
ret=i;break;
}
}
return ret;
}
//////////////////////////
//获取颜色号
/////////////////////////
COLORREF GetCurrentColor(int ColorNum)
{
static COLORREF crColors[20]={
RGB(0,0,0), //黑色 0
RGB(0,0,255), //兰色 1
RGB(0,255,0), //绿色 2
RGB(0,255,255), //青色 3
RGB(255,0,0), //红色 4
RGB(255,0,255), //洋红色 5
RGB(128,128,0), //棕色 6
RGB(192,192,192), //灰色 7
RGB(128,128,128), //深灰色 8
RGB(0,0,128), //深兰色 9
RGB(0,128,0), //深绿色 10
RGB(0,128,128), //深青色 11
RGB(128,0,0), //深红色 12
RGB(128,0,128), //深洋红色 13
RGB(255,255,0), //亮黄色 14
RGB(255,255,255), //亮白色 15
RGB(160,160,164), //亮灰色 16
RGB(192,220,192), //亮绿色 17
RGB(166,202,240), //亮兰色 18
RGB(255,251,240), //米色 19
};
return crColors[ColorNum];
}
/////////////////////////
//
/////////////////////////
void DrawRectangle(CDC *pDC,CRect rect,int FillMode,int FillColor,int SideColor)
{
if(FillMode==1)
{
CBrush *pOldBrush;
CBrush bkBrush(GetCurrentColor(FillColor));
pOldBrush=pDC->SelectObject(&bkBrush);
pDC->FillRect(rect,&bkBrush);
pDC->SelectObject(pOldBrush);
}
if(SideColor>=0)
{
Line(rect.left,rect.bottom,rect.left,rect.top,SideColor,pDC);
Line(rect.left,rect.top,rect.right,rect.top,SideColor,pDC);
Line(rect.right,rect.top,rect.right,rect.bottom,SideColor,pDC);
Line(rect.right,rect.bottom,rect.left,rect.bottom,SideColor,pDC);
}
}
////////////////////////////////////
//
////////////////////////////////////
void Draw3DRectangle(CDC *pDC,CRect rect,int vex)
{
int LeftTopColor,RightBottomColor;
switch(vex)
{
case 0:
LeftTopColor=15;
RightBottomColor=8;
break;
case 1:
LeftTopColor=8;
RightBottomColor=15;
break;
default:
LeftTopColor=15;
RightBottomColor=8;
break;
}
DrawRectangle(pDC,rect,1,7,0);
Line(rect.left+1,rect.bottom-1,rect.left+1,rect.top+1,LeftTopColor,pDC);
Line(rect.left+1,rect.top+1,rect.right-1,rect.top+1,LeftTopColor,pDC);
Line(rect.right-1,rect.top,rect.right-1,rect.bottom,RightBottomColor,pDC);
Line(rect.right,rect.bottom-1,rect.left,rect.bottom-1,RightBottomColor,pDC);
}
////////////////////////////////////////
//
///////////////////////////////////////
void APutImage( CDC *pDC, int x, int y, CBitmap *bitmap, COLORREF color )
{
COLORREF oldColor;
CBitmap bmAndBack, bmAndObject, bmAndMem, bmSave;
CBitmap *old1, *old2, *old3, *old4, *old5;
CDC memDC, backDC, objectDC, saveDC, pieceDC;
BITMAP bm;
bitmap->GetObject (sizeof (BITMAP), &bm);
backDC.CreateCompatibleDC (pDC);
objectDC.CreateCompatibleDC (pDC);
memDC.CreateCompatibleDC (pDC);
saveDC.CreateCompatibleDC (pDC);
pieceDC.CreateCompatibleDC (pDC);
bmAndBack.CreateBitmap (bm.bmWidth, bm.bmHeight, 1, 1, NULL);
bmAndObject.CreateBitmap (bm.bmWidth, bm.bmHeight, 1, 1, NULL);
bmAndMem.CreateCompatibleBitmap (pDC, bm.bmWidth, bm.bmHeight);
bmSave.CreateCompatibleBitmap (pDC, bm.bmWidth, bm.bmHeight);
old1 = backDC.SelectObject (&bmAndBack);
old2 = objectDC.SelectObject (&bmAndObject);
old3 = memDC.SelectObject (&bmAndMem);
old4 = saveDC.SelectObject (&bmSave);
old5 = pieceDC.SelectObject (bitmap);
saveDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &pieceDC, 0, 0, SRCCOPY);
oldColor = pieceDC.SetBkColor (color);
objectDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &pieceDC, 0, 0, SRCCOPY);
pieceDC.SetBkColor (oldColor);
backDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &objectDC, 0, 0, NOTSRCCOPY);
memDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, pDC, x, y, SRCCOPY);
memDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &objectDC, 0, 0, SRCAND);
pieceDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &backDC, 0, 0, SRCAND);
memDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &pieceDC, 0, 0, SRCPAINT);
pDC->BitBlt (x, y, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY);
pieceDC.BitBlt (0, 0, bm.bmWidth, bm.bmHeight, &saveDC, 0, 0, SRCCOPY);
backDC.SelectObject (old1);
objectDC.SelectObject (old2);
memDC.SelectObject (old3);
saveDC.SelectObject (old4);
pieceDC.SelectObject (old5);
bmAndBack.DeleteObject ();
bmAndObject.DeleteObject ();
bmAndMem.DeleteObject ();
bmSave.DeleteObject ();
}
//////////////////////////////////////////////////////////////////////////
//返回指定精度的小数串
//////////////////////////////////////////////////////////////////////////
CString RoundingToString(double Srcfloat,int nbits)
{
CString sFormat=_T("%.");
sFormat.Format("%d",nbits);
sFormat="%."+sFormat;
sFormat+="f";
CString sDouble;
sDouble.Format(sFormat,Srcfloat);
int Find=sDouble.Find('.');
if(Find!=-1)//截掉多余的0
{
for (int j = sDouble.GetLength() - 1; j >= Find; j--)
{
if (sDouble.GetAt(j) != '0' && sDouble.GetAt(j) != '.')
break;
}
sDouble=sDouble.Left(j + 1);
}
return sDouble;
}
//////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////
void CleanMpegFile(CString sPath)
{
#ifdef _DEBUG
CStdioFile Debug_Txt("d:\\DeleteMpeg.Txt",CFile::modeCreate|CFile::typeText);
Debug_Txt.Close();
Debug_Txt.Open("d:\\DeleteMpeg.Txt",CFile::modeWrite|CFile::typeText);
#endif
COleDateTime CurTime=COleDateTime::GetCurrentTime();
int nKeepDays=GetProfileInt("系统参数","保存",3);
CFileFind PlayFile;
CString sFind="*.mpg";
sFind=sPath+"\\"+sFind;
BOOL bFind=PlayFile.FindFile(sFind);
while(bFind)
{
bFind=PlayFile.FindNextFile();
CString sTmp=PlayFile.GetFileTitle();
CTime LastWriteTimeTmp;
PlayFile.GetLastWriteTime(LastWriteTimeTmp);
COleDateTime LastWriteTime(LastWriteTimeTmp.GetYear(),LastWriteTimeTmp.GetMonth(),LastWriteTimeTmp.GetDay(),LastWriteTimeTmp.GetHour(),LastWriteTimeTmp.GetMinute(),LastWriteTimeTmp.GetSecond());
DATE FileDate=LastWriteTime.operator DATE();
DATE CurDate=CurTime.operator DATE();
double fSpan=abs((double) (CurDate-FileDate));
if((int)fSpan>nKeepDays)
{
#ifndef _DEBUG
DeleteFile(PlayFile.GetFilePath());
#else
Debug_Txt.WriteString(PlayFile.GetFilePath());
Debug_Txt.WriteString("\t\n");
#endif
}
}
#ifdef _DEBUG
Debug_Txt.Close();
#endif
}
////////////////////////////////////////////////
//
////////////////////////////////////////////////
void Delay(int nTime)
{
int nTicks1=GetTickCount();
int nTicks2=nTicks1;
while((nTicks2-nTicks1)<nTime)
{
nTicks2=GetTickCount();
}
}
//////////////////////////////////////////////
//
//////////////////////////////////////////////
BOOL IsFileExist(CString sFile)
{
CFileStatus Status;
return CFile::GetStatus (sFile, Status);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -