PUBLIC.CPP
上传用户:shgx688
上传日期:2009-12-27
资源大小:855k
文件大小:8k
源码类别:

SNMP编程

开发平台:

MultiPlatform

  1. //#include "hwt.rh"
  2. #include "stdafx.h"
  3. #if !defined(PUBLIC_H)
  4. #include "public.h"
  5. #endif
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. Animated::Animated( int numB, char far* name, int delayTics, int endTics ,BOOL isCallIn)
  12.  : WaitingTic(0)
  13. {
  14.   NumBmps = numB;
  15.   CurBmp = 0;
  16.   Bmps = new (CBitmap(*[NumBmps]));  //  create array of numB CBitmap*'s
  17.   Stoping = 1;
  18.   DelayTics = delayTics;
  19.   EndTics = endTics;
  20.   IsCallIn = isCallIn;
  21.   // Load in bitmap resources
  22.   //
  23.   for (int j = 0; j < NumBmps; j++) {
  24.  char resName[40];
  25.  sprintf(resName, "%s%d", name ,j+1 );
  26.  Bmps[j] = new CBitmap();
  27.  Bmps[j]->LoadBitmap(resName);
  28.   }
  29. }
  30. //
  31. //
  32. //
  33. Animated::~Animated()
  34. {
  35.   for (int j = 0; j < NumBmps; j++)
  36.   {
  37.   Bmps[j]->DeleteObject();
  38.   delete Bmps[j];
  39.   }
  40.   delete Bmps;
  41. }
  42. //
  43. // Begin to draw the series of bitmaps timed to the timer.
  44. //
  45. void
  46. Animated::DisplayBegin(CDC& dc, int x, int y)
  47. {
  48.   CurBmp = 0;
  49.   X = x;
  50.   Y = y;
  51.   WaitingTic = 1;   // prime the time clock
  52.   Stoping = 0;
  53.   SoundCnt = 0;
  54.   DisplayNext(dc);
  55. }
  56. #define SoundDelay 9
  57. //
  58. // Draw each of the bitmaps timed to the timer.
  59. //
  60. void Animated::DisplayNext(CDC& dc)
  61. {
  62.   WaitingTic--;
  63.   if (WaitingTic || CurBmp == NumBmps)
  64.  return;
  65.   if(IsCallIn&&
  66. !(SoundCnt%SoundDelay
  67. // &&(SoundCnt-1)%(SoundDelay)
  68. // &&(SoundCnt-2)%(SoundDelay)
  69. // &&(SoundCnt-3)%(SoundDelay)
  70.  )
  71.  ) {
  72. //   sndPlaySound(0,0);
  73. //   sndPlaySound("home.wav", SND_ASYNC);
  74. //   MessageBeep(0);
  75.   }
  76.   if(IsCallIn)
  77.   SoundCnt = (SoundCnt+1)%SoundDelay;
  78.   CDC dcImage;
  79. if (!dcImage.CreateCompatibleDC(&dc))
  80. return;
  81. BITMAP bm;
  82. Bmps[CurBmp]->GetBitmap(&bm);
  83. // Paint the image.
  84. CBitmap* pOldBitmap = dcImage.SelectObject(Bmps[CurBmp]);
  85. dc.BitBlt(X, Y, bm.bmWidth, bm.bmHeight, &dcImage, 0, 0, SRCCOPY);
  86. dcImage.SelectObject(pOldBitmap);
  87. dcImage.DeleteDC();
  88.   if(!EndTics)
  89.  CurBmp = (CurBmp+1)%NumBmps;
  90.   else
  91.  CurBmp = (CurBmp+1);
  92.   WaitingTic = (CurBmp == NumBmps) ? EndTics : DelayTics;
  93. }
  94. void
  95. Animated::Stop(CDC& dc){
  96. // if(!Stoping)
  97. {
  98. CDC dcImage;
  99. if (!dcImage.CreateCompatibleDC(&dc))
  100. return;
  101. BITMAP bm;
  102. Bmps[NumBmps-1]->GetBitmap(&bm);
  103. // Paint the image.
  104. CBitmap* pOldBitmap = dcImage.SelectObject(Bmps[NumBmps-1]);
  105. dc.BitBlt(X, Y, bm.bmWidth, bm.bmHeight, &dcImage, 0, 0, SRCCOPY);
  106. dcImage.SelectObject(pOldBitmap);
  107. dcImage.DeleteDC();
  108.   }
  109. Stoping = 1;
  110. }
  111. static CPen BlackPen(PS_SOLID, 1, RGB(0,0,0));
  112. static CPen DkGrayPen(PS_SOLID, 1, RGB(128,128,128));
  113. static CPen GrayPen(PS_SOLID, 1, RGB(192,192,192));
  114. static CPen WhitePen(PS_SOLID, 1, RGB(255,255,255));
  115. void myrect(CDC& dc,int x1,int y1,int x2,int y2,int type,COLORREF color){
  116. //return;
  117. CPen newPen;
  118. CPen *oldPen;
  119. switch(type){
  120.   case ColorRect:
  121. oldPen = dc.SelectObject(&BlackPen);
  122. // newPen.CreatePen( PS_SOLID, 1,RGB(0,0,0));
  123. break;
  124.   case DownRect:
  125. oldPen = dc.SelectObject(&DkGrayPen);
  126. // newPen.CreatePen( PS_SOLID, 1,RGB(128,128,128));
  127. break;
  128.   case UpRect:
  129. oldPen = dc.SelectObject(&WhitePen);
  130. // newPen.CreatePen( PS_SOLID, 1, RGB(255,255,255));
  131. break;
  132.   case WhiteRect:
  133. oldPen = dc.SelectObject(&WhitePen);
  134. // newPen.CreatePen( PS_SOLID, 1,RGB(255,255,255));
  135. break;
  136.   case BlackRect:
  137. oldPen = dc.SelectObject(&BlackPen);
  138. // newPen.CreatePen( PS_SOLID, 1,RGB(0,0,0));
  139. break;
  140.   }
  141. // oldPen = dc.SelectObject(&newPen);
  142.   dc.MoveTo(x2, y1);
  143.   dc.LineTo(x1, y1);
  144.   dc.LineTo(x1, y2+1);
  145. //   newPen.DeleteObject();
  146.   switch(type){
  147.   case ColorRect:
  148. dc.SelectObject(&WhitePen);
  149. // newPen.CreatePen( PS_SOLID, 1, RGB(255,255,255));
  150. break;
  151.   case DownRect:
  152. dc.SelectObject(&WhitePen);
  153. // newPen.CreatePen( PS_SOLID, 1, RGB(255,255,255));
  154. break;
  155.   case UpRect:
  156. dc.SelectObject(&DkGrayPen);
  157. // newPen.CreatePen( PS_SOLID, 1, RGB(128,128,128));
  158. break;
  159.   case WhiteRect:
  160. dc.SelectObject(&WhitePen);
  161. // newPen.CreatePen( PS_SOLID, 1,RGB(255,255,255));
  162. break;
  163.   case BlackRect:
  164. dc.SelectObject(&BlackPen);
  165. // newPen.CreatePen( PS_SOLID, 1,RGB(0,0,0));
  166. break;
  167.   }
  168. // dc.SelectObject(&newPen);
  169.   dc.MoveTo(x1+1, y2);
  170.   dc.LineTo(x2, y2);
  171.   dc.LineTo(x2, y1);
  172. //   newPen.DeleteObject();
  173.   if(type==ColorRect){
  174. dc.SelectObject(&WhitePen);
  175. ////   newPen.CreatePen( PS_SOLID, 1,RGB(255,255,255));
  176. // dc.SelectObject(&newPen);
  177. dc.MoveTo(x2, y1+1);
  178. dc.LineTo(x1+1, y1+1);
  179. dc.LineTo(x1+1, y2);
  180. // newPen.DeleteObject();
  181. dc.FillRect(CRect(x1+2,y1+2,x2-1,y2-1),&CBrush(color));//RGB(0,100,100));
  182. dc.SelectObject(&BlackPen);
  183. // newPen.CreatePen( PS_SOLID, 1,RGB(0,0,0));
  184. // dc.SelectObject(&newPen);
  185. dc.MoveTo(x2-1, y1+1);
  186. dc.LineTo(x1+1, y1+1);
  187. dc.LineTo(x1+1, y2-1);
  188. // newPen.DeleteObject();
  189. dc.SelectObject(&WhitePen);
  190. // newPen.CreatePen( PS_SOLID, 1,RGB(255,255,255));
  191. // dc.SelectObject(&newPen);
  192. dc.LineTo(x2-1, y2-1);
  193. dc.LineTo(x2-1, y1+1);
  194. // newPen.DeleteObject();
  195. }
  196. dc.SelectObject(oldPen);
  197. }
  198. ////////////////////////////////////////////
  199. void DrawBMP(CDC& dc, int x, int y, CBitmap& bitmap)  //画位图
  200. {
  201.   CDC dcImage;
  202. if (!dcImage.CreateCompatibleDC(&dc))
  203. return;
  204. BITMAP bm;
  205. bitmap.GetBitmap(&bm);
  206. // Paint the image.
  207. CBitmap* pOldBitmap = dcImage.SelectObject(&bitmap);
  208. dc.BitBlt(x, y, bm.bmWidth, bm.bmHeight, &dcImage, 0, 0, SRCCOPY);
  209. dcImage.SelectObject(pOldBitmap);
  210. dcImage.DeleteDC();
  211. }
  212. void DrawNum(CDC& dc,char * Num, int x, int y,int len  )
  213. {
  214. }
  215. int copyfile(char *sourcefile,char *objectfile)
  216. {
  217.    return 1;
  218. }
  219. void strtodata(int bytelength,CString sourcestr,BYTE * resultbyte)
  220. {
  221. // ASSERT(bytelength%2==0);
  222. int templength=sourcestr.GetLength();
  223.     char* tempstr=sourcestr.GetBuffer(templength);
  224.     char lowbyte[9];
  225. char highbyte[9];
  226.     char realbyte[18];
  227. if(templength==0)
  228. {for(int j=0;j<9;j++)
  229. resultbyte[j]=0xff;
  230. }
  231. else
  232. {for(int i=0;i<templength;i++)
  233. realbyte[i]=*(tempstr+i);
  234. for( i=0;i<bytelength-templength;i++)
  235. realbyte[templength+i]=0x3f;
  236. for( i=0;i<bytelength;i+=2)
  237. lowbyte[i/2]=realbyte[i]-0x30;
  238. for( i=1;i<bytelength;i+=2)
  239. highbyte[(i-1)/2]=(realbyte[i]-0x30)<<4;
  240. for( i=0;i<bytelength/2;i++)
  241. resultbyte[i]=lowbyte[i]+highbyte[i];
  242. }
  243. }
  244. int asc_BCD(char * sasc ,char * DBCD,int type)
  245. {
  246. int i=0;
  247. char  ch,ch1;
  248. if((type==0xc)||(type==0xd))
  249. {
  250. char t_sasc[8];
  251. int len;
  252. if(type==0xc)
  253. {
  254. len=strlen(sasc);
  255. t_sasc[0]=0;
  256. if(len<4)
  257. {
  258. for(i=0;i<(4-len);i++) t_sasc[i]='0';
  259. t_sasc[i]=0;
  260. }
  261. strcat(t_sasc,sasc);
  262. }
  263. if(type==0xd)
  264. {
  265. len=strlen(sasc);
  266. t_sasc[0]=0;
  267. if(len<2)
  268. {
  269. for(i=0;i<(2-len);i++) t_sasc[i]='0';
  270. t_sasc[i]=0;
  271. }
  272. strcat(t_sasc,sasc);
  273. }
  274. for(i=0;(t_sasc[i]!='');i++)
  275. {
  276.      ch=t_sasc[i]-0x30;
  277.  ch1=ch<<4;
  278.      DBCD[i/2]=ch1;
  279.  i++;
  280.  ch1=t_sasc[i];
  281.      if(ch1) 
  282.  {
  283. ch=ch1-0x30;
  284. DBCD[i/2]|=ch;
  285.  }
  286. else 
  287.  {
  288. i++;
  289. break;
  290.  }
  291.   }
  292. return (i/2);//此处有疑问!!!
  293. }
  294. for(i=0;(sasc[i]!='');i++)
  295.   {
  296.      ch=sasc[i]-0x30;
  297.      if(!ch) ch=10;
  298.  ch1=ch<<4;
  299.      DBCD[i/2]=ch1;
  300.  i++;
  301.  ch1=sasc[i];
  302.      if(ch1) 
  303.  {
  304. ch=ch1-0x30;
  305. if(!ch) ch=10;
  306. DBCD[i/2]|=ch;
  307.  }
  308. else 
  309.  {
  310. i++;
  311. break;
  312.  }
  313.   }
  314. return (i/2);//此处有疑问!!!
  315. }
  316. int asc_bin(char * sasc, char * DBCD)
  317. {
  318.       int i;
  319.   char  ch,ch1;
  320.           for(i=0;sasc[i]!='';i++)
  321.   {
  322.  ch=sasc[i];
  323.  if((ch>='0')&&(ch<='9')) ch1=ch-'0';
  324.  if((ch>='a')&&(ch<='z')) ch1=ch-'a'+0xa;
  325.  if((ch>='A')&&(ch<='Z')) ch1=ch-'A'+0xa;
  326.  ch1=ch1<<4;
  327.  DBCD[i/2]=ch1;
  328.  i++;
  329.  ch=sasc[i];
  330.  if(ch) 
  331.  {
  332.  if((ch>='0')&&(ch<='9')) ch1=ch-'0';
  333.  if((ch>='a')&&(ch<='z')) ch1=ch-'a'+0xa;
  334.  if((ch>='A')&&(ch<='Z')) ch1=ch-'A'+0xa;
  335.  DBCD[i/2]|=ch1;
  336.  }
  337.   }
  338.  i=strlen(sasc);
  339.  if(i%2) return(i/2+1);
  340.   else return (i/2);
  341. }