回复 94楼 hellovfp
大哥能把你写的Image类发下吗 想参考下你们的方法。
梅尚程荀
马谭杨奚
2012-05-17 19:20
2012-05-17 19:23


2012-05-17 21:27


2012-05-17 21:46

2012-05-17 21:51

2012-05-17 21:56
程序代码:// Draw On the lattice 根据具体消息在格子上画图
static void DrawLattice(int cPos, BOOL select)
{
int PosTurn, cx, cy, ChessmanID;
PosTurn = WV.bTurn ? LatticeTurn(cPos) : cPos;
cx = BoardEdge + (GetX(PosTurn) - 3) * LatticeSize;
cy = BoardEdge + (GetY(PosTurn) - 3) * LatticeSize;
SelectObject(WV.hdcTemp, WV.hbmpBoard);
BitBlt(WV.hdcMain, cx, cy, LatticeSize, LatticeSize, WV.hdcTemp, cx, cy, SRCCOPY);
ChessmanID = State.Chessman[cPos];
if (ChessmanID != 0)
DrawTransMap(WV.hdcMain, WV.hdcTemp, cx, cy, WV.hbmpChessman[ChessmanID]);
if (select != 0)
DrawTransMap(WV.hdcMain, WV.hdcTemp, cx, cy, WV.hbmpSelected);
}
程序代码: case WM_CREATE:
GetWindowRect(hWnd, &rect);
x = rect.left;
y = rect.top;
rect.right = rect.left + BoardWidth;
rect.bottom = rect.top + BoardHeight ;
AdjustWindowRect(&rect, WINDOW_STYLES, TRUE);
MoveWindow(hWnd, x, y, rect.right - rect.left, rect.bottom - rect.top, TRUE);
break;
程序代码:#define WINDOW_STYLES WS_OVERLAPPEDWINDOW | WS_SYSMENU | WS_CAPTION const int LatticeSize = 52; const int BoardEdge = 4; const int BoardWidth = 2 * BoardEdge + 9 * LatticeSize; const int BoardHeight = 2 * BoardEdge + 10 * LatticeSize;
后来才慢慢的调整 但是老是对不上格子 我就去把每个棋子都改成 52 * 52的了 在把棋盘改成和52对应的尺寸 。其中就提示过失真的现象。

2012-05-17 22:11

2012-05-17 22:16
2、获取当前行棋方、完成将一个位置的棋子移动到另一个位置(其中设置行棋规则,通过返回值通知调用者是否可以这样行棋);--

2012-05-17 22:27

)

2012-05-17 22:40