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) ;