项目小结

来源:互联网 发布:淘宝店铺招牌设计制作 编辑:程序博客网 时间:2024/04/30 15:00

void CMyDlg::OnMouseMove(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
// Invalidate();
 if(((point.x-500)*(point.x-500)+(point.y-200)*(point.y-200))<=10000)
 {
  if((point.y<=170)&&((point.x+point.y)<=700)&&((point.x-point.y)>=300))//up
  {
   m_up=1;m_Ok=0;m_C=0;m_down=0;
   ::SetCursor(::LoadCursor(NULL,IDC_HAND));
  }
  if((point.y>=230)&&((point.x+point.y)>=700)&&((point.x-point.y)<=300))//down
  {
   m_down=1;m_up=0;m_Ok=0;m_C=0;
   ::SetCursor(::LoadCursor(NULL,IDC_HAND));
  }
  if((point.x<=470)&&((point.x+point.y)<=700)&&((point.x-point.y)<=300))//C
  {
   m_C=1;m_up=0;m_Ok=0;m_down=0;
   ::SetCursor(::LoadCursor(NULL,IDC_HAND));
  }
  if((point.x>=530)&&((point.x+point.y)>=700)&&((point.x-point.y)>=300))//Ok
  {
   m_Ok=1;m_up=0;m_C=0;m_down=0;
   ::SetCursor(::LoadCursor(NULL,IDC_HAND));
  }

 }
 CDialog::OnMouseMove(nFlags, point);
}


void CMyDlg::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default
 CDC *pDC=GetDC();    
 CRect rect;  
 GetClientRect(&rect);   
 CDC dcMem;                                                  //用于缓冲作图的内存DC  
 CBitmap bmp;                                                 //内存中承载临时图象的位图  
 dcMem.CreateCompatibleDC(pDC);               //依附窗口DC创建兼容内存DC  
 bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());//创建兼容位图  
 dcMem.SelectObject(&bmp);                          //将位图选择进内存DC  
 dcMem.FillSolidRect(&rect,RGB(255,0,0));//设置背景颜色
 CPen pen,*pOldPen;
 
 pen.CreatePen(PS_SOLID,7,RGB(255,0,0));
 pOldPen=dcMem.SelectObject(&pen);
 dcMem.Ellipse(400,100,600,300);//画圆
 dcMem.Rectangle(470,170,530,230);//圆里的小正方形

 
 dcMem.MoveTo(470,230);
 dcMem.LineTo(400,300);
 
 dcMem.MoveTo(400,100);
 dcMem.LineTo(470,170);
 
 dcMem.MoveTo(600,100);
 dcMem.LineTo(530,170);
 
 dcMem.MoveTo(600,300);
 dcMem.LineTo(530,230);
 dcMem.SetBkMode(TRANSPARENT);
 dcMem.TextOut(485,130,"UP");
 
 dcMem.TextOut(475,250,"DOWN");
 
 dcMem.TextOut(430,200,"C");
 
 dcMem.TextOut(550,200,"OK");
 
 dcMem.SelectObject(pOldPen);
 
 pen.DeleteObject();
 CBrush brush[3];

 
 brush[0].CreateSolidBrush(RGB(0,100,0));
 dcMem.SelectObject(&brush[0]);
 dcMem.Rectangle(50,100,380,300);//显示区域的大正方形
 
 
 brush[1].CreateSolidBrush(RGB(255,255,255));
 dcMem.SelectObject(&brush[1]);
 dcMem.Rectangle(80,120,350,280);//显示区域的小正方形
 
/* brush[3].CreateHatchBrush(HS_CROSS,RGB(255,0,0));//网格线
 dcMem.SelectObject(&brush[3]);
 dcMem.Rectangle(80,120,350,280);

 brush[3].CreateSolidBrush(RGB(255,0,0));
 dcMem.SelectObject(&brush[3]);*/
 //画内部格子
/* int x1=81,y1;
    while(x1<=349)
 {
  y1=121;
  while(y1<=279)
  {
           dcMem.Rectangle(x1-1,y1-1,x1+1,y1+1);
     y1+=3;
  }
  x1+=3;
 }*/
 brush[2].CreateSolidBrush(RGB(255,0,0));
 dcMem.SelectObject(&brush[2]);

 int x,y;
 x=82;y=122;
 
 FILE *fp;
 if ((fp = fopen("hzk16", "rb")) == NULL) {
  // MessageBox("Can not find file 'HZK16'", "Error");
  return;
 }  
 char *s, buffer[16][2]; 
 
 CString m_sin="我的项目小结一下";
 s = (LPTSTR)(LPCTSTR)m_sin;  // cast m_sin to char *s
 unsigned char qh, wh;
 unsigned long offset;  
 char *q;  
 for (int i = 0; i < 16; i++) {  // output each line for characters at a time
  q = s;
  while (*q) {
   qh = *(q) - 0xa0;   
   wh = *(q+1) - 0xa0;
   offset = ( 94*(qh-1)+(wh-1) )*32;  // offset from HZK16
   fseek(fp, offset, SEEK_SET);   // get there
   fread(buffer, 32, 1, fp);    // read a character into buffer
   
   for (int j = 0; j < 2; j++) {
    for (int k = 0; k < 8; k++)
     if (buffer[i][j] & (0x80 >> k))
      //m_TextOut += m_sfront;
     {
      dcMem.SetPixel(x,y, RGB(255,0,0));
      
                   //  dcMem.SelectObject(&brush[2]);
     // dcMem.Rectangle(x-1,y-1,x+1,y+1);
      x+=2;
     }
     else
     {
      x+=2;
     }
     
   }
   q += 2;   // next character
  }
  
  y += 2;
  x= 82;
  
 }
 //dcMem.SelectObject(pOldBrush);

 

 if(m_C==1&&m_Lbtn==1)
 {
   dcMem.SelectObject(&brush[1]);
   dcMem.Rectangle(80,120,35,280);
   m_C=0;
   m_Lbtn=0;
  
 }


 for(i=0;i<3;i++)
 {
  brush[i].DeleteObject();
 }
 
 
 
 pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);//将内存DC上的图象拷贝到前台  
 dcMem.DeleteDC();                                       //删除DC  
 bmp.DeleteObject();                                        //删除位图
 // ReleaseDC(pDC);
 CDialog::OnTimer(nIDEvent);
 
}

int CMyDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CDialog::OnCreate(lpCreateStruct) == -1)
  return -1;
 
    SetTimer(1,10,NULL); 
 return 0;
}

void CMyDlg::OnDestroy()
{
 CDialog::OnDestroy();
 
 KillTimer(1);
 
}

原创粉丝点击