⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stdafx.cpp

📁 一个完整的数字硬盘录像机系统软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
   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 + -