📄 wndplay.h
字号:
/****************************************************************************/
//
// ~~~~~~~~~~~~~~~~ Window Play's Functions I ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~ Window Credit's Functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WndPlay.h
//
//***************************************************************************/
//***************************************************************************/
// ~~~~~~~~~~~~~~~~ Window Play's Functions I ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include "wndplay2.h"
//////////////////////////////////////////////////////////////////////////////
// WndPlay Paint Message
void Play_Paint()
{
HDC hDC;
PAINTSTRUCT ps;
int x, y ,i;
hDC=BeginPaint(WndPlay.hWnd ,&ps);
for(x=0; x < setting.iBlock; x++)
for(y=0; y < setting.iBlock; y++)
{
MyRectangle(hDC,(x)*XBLOCK,(y)*XBLOCK,(x+1)*XBLOCK+1,(y+1)*XBLOCK+1, skin.crBlockBorder,skin.crBlock);
}
// Draw Win Line
if(play.fWin == 1)
{
for( i=0; i<4 ; i++ )
if(play.pSWin[i].x >=0 )
MyLineEx(hDC, play.pSWin[i].x +1 , play.pSWin[i].y +1 , play.pEWin[i].x +1 , play.pEWin[i].y +1 , PS_SOLID, XBLOCK /2 , play.iWinner == 0 ? skin.crPColor[1] : skin.crPColor[0] );
}
for(x=0; x < setting.iBlock; x++)
for(y=0; y < setting.iBlock; y++)
{
if( pBlock(x,y) >=0 )
{
DrawBlock( (x)*XBLOCK, (y)*XBLOCK, pBlock(x,y), skin.crPColor[ pBlock( x, y )] );
}
}
// Draw Mouse HiLight
MyRectangle(hDC, (ec.pMouse.x )*XBLOCK, (ec.pMouse.y )*XBLOCK, (ec.pMouse.x + 1)*XBLOCK+1, (ec.pMouse.y + 1)*XBLOCK+1, skin.crBlock, skin.crMouse);
if( pBlock(ec.pMouse.x, ec.pMouse.y) >=0 && pBlock(ec.pMouse.x, ec.pMouse.y) < MAX_PLAYER )
DrawBlock((ec.pMouse.x)*XBLOCK, (ec.pMouse.y)*XBLOCK, pBlock(ec.pMouse.x , ec.pMouse.y ), skin.crBlock );
else
DrawBlock( (ec.pMouse.x)*XBLOCK , (ec.pMouse.y)*XBLOCK , play.iTurn ,
RGB (
min( 255, ( GetRValue(skin.crPColor[play.iTurn] ) + GetRValue(skin.crMouse ) )/2 ),
min( 255, ( GetGValue(skin.crPColor[play.iTurn] ) + GetGValue(skin.crMouse ) )/2 ),
min( 255, ( GetBValue(skin.crPColor[play.iTurn] ) + GetBValue(skin.crMouse ) )/2 )
)
);
EndPaint(WndPlay.hWnd , &ps);
}
//////////////////////////////////////////////////////////////////////////////
// WndPlay Mouse Move Message
void Play_MouseMove(LPARAM lParam)
{
if( GetAsyncKeyState(VK_LBUTTON)<0 && ( ec.poDrag.x != LOWORD(lParam) / XBLOCK || ec.poDrag.y != HIWORD(lParam) / XBLOCK) )
{
ec.fDrag = TRUE;
SetClassLong(WndPlay.hWnd , GCL_HCURSOR, (LONG) LoadCursor(ec.hInst ,"IDC_MOVE"));
play.siHPlay += ec.poDrag.x - LOWORD(lParam) / XBLOCK;
play.siVPlay += ec.poDrag.y - HIWORD(lParam) / XBLOCK;
SendMessage(WndChild.hWnd , WM_SIZE, 0, 0 );
}
else
{
ec.poDrag.x = LOWORD(lParam) / XBLOCK;
ec.poDrag.y = HIWORD(lParam) / XBLOCK;
if(!play.fWin && !play.fComPlay && !play.fKey )
{
MoveHiLight( min(LOWORD(lParam) / XBLOCK , setting.iBlock),
min(HIWORD(lParam) / XBLOCK , setting.iBlock) );
// Set Track Mouse Event ---- Need for WM_MOUSELEAVE
CheckMouseLeave(WndPlay.hWnd);
}
}
}
//////////////////////////////////////////////////////////////////////////////
// WndPlay Mouse Leave Message
void Play_MouseLeave()
{
HDC hDC;
ec.fDrag = FALSE;
SetClassLong(WndPlay.hWnd , GCL_HCURSOR, (LONG) LoadCursor(ec.hInst , "IDC_CURSOR"));
if( !play.fKey )
{
hDC = GetDC(WndPlay.hWnd );
MyRectangle(hDC, (ec.pMouse.x)*XBLOCK, (ec.pMouse.y)*XBLOCK, (ec.pMouse.x+ 1)*XBLOCK+1, (ec.pMouse.y + 1)*XBLOCK+1, skin.crBlockBorder, skin.crBlock);
if( pBlock(ec.pMouse.x, ec.pMouse.y) >=0 )
{
DrawBlock((ec.pMouse.x)*XBLOCK, (ec.pMouse.y)*XBLOCK, pBlock(ec.pMouse.x , ec.pMouse.y ), skin.crPColor[ pBlock( ec.pMouse.x , ec.pMouse.y )] );
}
ec.pOld.x = -1;
ec.pOld.y= -1;
ec.pMouse.x = -1;
ec.pMouse.y= -1;
ReleaseDC(WndPlay.hWnd , hDC);
// Set status
ShowStatus(DEFAULT_STATUS);
}
}
//////////////////////////////////////////////////////////////////////////////
// WndPlay Left Mouse Down Message
void Play_LButtonDown(LPARAM lParam)
{
}
//////////////////////////////////////////////////////////////////////////////
// WndPlay Left Mouse Up Message
void Play_LButtonUp(LPARAM lParam)
{
if(!ec.fDrag)
{
if(play.fKey)
play.fKey = FALSE;
else
ClickBlock( LOWORD(lParam) / XBLOCK,
HIWORD(lParam) / XBLOCK );
}
else
{
ec.fDrag = FALSE;
SetClassLong(WndPlay.hWnd , GCL_HCURSOR, (LONG) LoadCursor(ec.hInst , "IDC_CURSOR"));
}
}
//***************************************************************************/
// ~~~~~~~~~~~~~~~~ Window Credit's Functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Credit_Paint()
{
HDC hDC;
PAINTSTRUCT ps;
int i;
HFONT hFont;
TCHAR szBuffer[50];
if ( ec.iCreditPos * CREDIT_STEP <= WndCredit.yClient + WndChild.yClient )
{
TCHAR *szCredit[] = {
"\tAnitsoft
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -