连连看API版本的源代码[10]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

   bPrompt=true;
   //if(iPrompt==0)
    //EnableMenuItem ((HMENU) wParam, IDM_APP_PROMPT,  MF_GRAYED) ;
   break;
  }
  return 0 ;
 case WM_LBUTTONUP:
  //取得鼠标坐标
  x= LOWORD (lParam)/(cxBack-3);
  y= ( HIWORD (lParam)+30)/(cyBack-4);
  if (x>=1 && x<=M-2 && y>=1 && y<=N-2 && linker.get_element(x,y)!=0 )
  {
  /*
  sprintf(szBuffer,"%d",y);
  MessageBox (hwnd, TEXT (szBuffer),
    szAppName, MB_YESNO | MB_ICONQUESTION) ;*/
  //如果是在第一张牌按下鼠标
  if(pSelected[0].x==0 && pSelected[0].y==0 )
  {
   //hBrush = GetStockObject (GRAY_BRUSH) ;
   //SelectObject (hdc, hBrush) ;
   
   //hdc = BeginPaint (hwnd, &ps) ;
   //SelectObject (hdc, GetStockObject (BLACK_PEN)) ;

   //在该牌上画圆
    rect.left = x *(cxBack-3);
    rect.right = rect.left+(cxBack-3)+3;
    rect.top  = y *(cyBack-4)-30;
    rect.bottom = rect.top + (cyBack-4)+4;
    //Ellipse(hdc,rect.left ,rect.top ,rect.right ,rect.bottom );
    InvalidateRect (hwnd, &rect, true) ;
    //EndPaint (hwnd, &ps) ;
   //把牌的位置记录下来
   pSelected[0].x=x;
   pSelected[0].y=y;
  }
  else
  { //如果是第二张牌上按鼠标

   //把牌的位置记录下来
   pSelected[1].x=x;
   pSelected[1].y=y;

  
   if( (pSelected[0].x!=pSelected[1].x ||
    pSelected[0].y!=pSelected[1].y) &&
    linker.is_matched(pSelected[0],pSelected[1]) )
   {//如果不是同一张牌并且花色一致
    
    //寻找路径
    find=linker.man_search(pSelected[0],pSelected[1])
     || linker.man_search(pSelected[1],pSelected[0]);;

    if(find)
    {//找到

     //GetClientRect (hwnd, &rect) ;
     rect.left = pSelected[0].x *(cxBack-3);
     rect.right = rect.left+(cxBack-3)+3;
     rect.top  = pSelected[0].y *(cyBack-4)-30;
     rect.bottom = rect.top + (cyBack-4)+4;
     InvalidateRect (hwnd, &rect, true) ;

     rect.left = pSelected[1].x *(cxBack-3);
     rect.right = rect.left+(cxBack-3)+3;
     rect.top  = pSelected[1].y *(cyBack-4)-30;
     rect.bottom = rect.top + (cyBack-4)+4;
     InvalidateRect (hwnd, &rect, true) ;

     rect.left=0;
     rect.right=0 ;
     rect.top=0;
     rect.bottom=0;

     iCount++;
     iTime+=2;

     PlaySound (TEXT ("yes.wav"), NULL, SND_FILENAME | SND_ASYNC) ;

     //InvalidateRect (hwnd, NULL, true) ;

    }
    else
    {//没找到
    /*
     sprintf(szBuffer,"%d",find);
     MessageBox (hwnd, TEXT (szBuffer),
     szAppName, MB_YESNO | MB_ICONQUESTION) ;*/

     rect.left = pSelected[0].x *(cxBack-3);
     rect.right = rect.left+(cxBack-3)+3;
     rect.top  = pSelected[0].y *(cyBack-4)-30;
     rect.bottom = rect.top + (cyBack-4)+4;
     InvalidateRect (hwnd, &rect, true) ;

本文关键:连连看API版本的源代码
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top