//绘制牌面
for(i=1; i<=M-2; i++ )
for(j=1; j<=N-2; j++ )
{
num=linker.get_element(i,j);
if( num!=0 )
{
x=i*(cxBack-3);
y=j*(cyBack-4)-30;
SelectObject (hdcMem, hBitmap1) ;
BitBlt (hdc, x, y, cxBack, cyBack, hdcMem, 0, cyBack*(num%6+1), SRCCOPY) ;
SelectObject (hdcMem, hBitmap2) ;
BitBlt (hdc, x+1, y+6, cxPre, cyPre, hdcMem, cxPre, cyPre*num, SRCAND) ;
BitBlt (hdc, x+1, y+6, cxPre, cyPre, hdcMem, 0, cyPre*num, SRCPAINT) ;
}
}
//当选中第一张牌时,在上面画个圈
if(rect.left!=0 && rect.right!=0 && rect.top!=0 && rect.bottom!=0 && bPrompt==false)
{
SelectObject (hdc, GetStockObject (GRAY_BRUSH)) ;
Ellipse(hdc,rect.left ,rect.top ,rect.left+10 ,rect.top+10 );
rect.left=0;
rect.right=0 ;
rect.top=0;
rect.bottom=0;
}
if( first_started==false)
{
sprintf(szBuffer,"剩余时间: %d 秒",iTime);
TextOut (hdc, 0, 0, szBuffer, strlen (szBuffer)) ;
TextOut (hdc, xsize/5, 0, TEXT("每消去一对剩余时间+2秒"), strlen (TEXT("每消去一对剩余时间+3秒"))) ;
sprintf(szBuffer,"剩余洗牌次数: %d 次",iShuffle);
TextOut (hdc, xsize/2+10, 0, szBuffer, strlen (szBuffer)) ;
sprintf(szBuffer,"剩余提示次数: %d 次",iPrompt);
TextOut (hdc, xsize/4*3, 0, szBuffer, strlen (szBuffer)) ;
}
if(first_started)
{//第一次打开程序
/*SendMessage(hwnd,WM_COMMAND,IDM_APP_ABOUT,0);
//发送 单击关于菜单 消息
SendMessage(hwnd,WM_COMMAND,IDM_APP_START,0);
//发送 单击开始游戏菜单 消息,询问是否开始;*/
hBitmap3 = LoadBitmap (hInstance, TEXT ("IDB_BITMAP_START"));
GetObject (hBitmap3, sizeof (BITMAP), &bitmap) ;
cxStart = bitmap.bmWidth;
cyStart = bitmap.bmHeight;
SelectObject (hdcMem, hBitmap3) ;
StretchBlt (hdc, 0, 0, xsize, ysize, hdcMem, 0,0, cxStart, cyStart,MERGECOPY) ;
PlaySound (TEXT ("start.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
//first_started=false;
}
if(bPrompt)
{
SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ;
Ellipse(hdc,rect.left ,rect.top ,rect.left+10 ,rect.top+10 );
Ellipse(hdc,rect2.left ,rect2.top ,rect2.left+10 ,rect2.top+10 );
rect.left=0;
rect.right=0 ;
rect.top=0;
rect.bottom=0;
rect2.left=0;
rect2.right=0 ;
rect2.top=0;
rect2.bottom=0;
bPrompt=false;
}
DeleteDC (hdcMem) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_INITMENUPOPUP:
if( first_started==false )
{
EnableMenuItem ((HMENU) wParam, IDM_APP_RESHUFFLE, MF_ENABLED) ;
EnableMenuItem ((HMENU) wParam, IDM_APP_PROMPT, MF_ENABLED) ;
}
if(iShuffle==0)
EnableMenuItem ((HMENU) wParam, IDM_APP_RESHUFFLE, MF_GRAYED) ;
if(iPrompt==0)
EnableMenuItem ((HMENU) wParam, IDM_APP_PROMPT, MF_GRAYED) ;
break;
case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDM_APP_START://单击开始游戏菜单
if ( IDYES == MessageBox (hwnd, TEXT ("开始游戏吗?"),
szAppName, MB_YESNO | MB_ICONQUESTION) )
//弹出确认窗口,按YES开始游戏
{
if ( iCurrentLevel==IDM_APP_LOW )
{//难度为低
iTime=90;
iPrompt=3;
iShuffle=2;
linker=Linker_Matrix(6);
}