如何将API函数转换到MFC函数实现相同的定位五子棋棋子落子位置功能

SECONDII 2009-06-03 11:00:52
原来的API函数:
case WM_LBUTTONDOWN:
if(!bStart)
{
MessageBeep(0);
MessageBox(hwnd, TEXT("要开始游戏,请从菜单中选择“开始”。") , TEXT("五子棋"), MB_OK|MB_ICONINFORMATION);
return 0;
}
x = LOWORD (lParam)/cxBlock;
y = HIWORD (lParam)/cyBlock;
这两行什么意思?
if(matrix[x][y] == NONE)
{
matrix[x][y] = RED;
hdc = GetDC(hwnd);
DrawChess(hdc, RED, x, y, cxBlock, cyBlock);
}
转换后的mfc函数:

void CMychessDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

if (!bstart)
{
MessageBox("要开始游戏,请从菜单中选择“新局”","提示", MB_OK|MB_ICONINFORMATION);
}
//for(x=0;x<ROWCOLS;x++)
//for(y=0;y<ROWCOLS;y++)
//if(chessPoint[x][y]==point && matrix[x][y]==NONE)
//{
//matrix[x][y]=RED;
这是我自己原先定义的,运行后无效。
x=(point.x-cxBlock/2)/cxBlock;
y=(point.y-cyBlock/2)/cyBlock;
if(matrix[x][y]==NONE)
{
matrix[x][y]=RED;
DrawChess(RED,x,y,cxBlock,cyBlock);
}
这是我转换后的,运行后不是很好

CDialog::OnLButtonDown(nFlags, point);
}


请问怎样改写呢?
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubuweiright 2009-06-04
  • 打赏
  • 举报
回复
帮顶

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧