云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > MFC中国象棋程序

MFC中国象棋程序

  • 62 次阅读
  • 3 次下载
  • 2025/7/7 12:26:56

m_pMainWnd = new CMainWindow;

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); m_pMainWnd->UpdateWindow(); return TRUE; }

BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd) ON_WM_PAINT()

END_MESSAGE_MAP()

CMainWindow::CMainWindow() {

Create(NULL,_T(\象棋棋盘\ }

//CMainWindow mesage map and member functions void CMainWindow::OnPaint() {

CPaintDC dc(this);

CRect rect;

GetClientRect(&rect);

//画背景

CBrush bkBrush(RGB(192,192,192)); dc.FillRect(rect,&bkBrush);

//确定画象棋棋盘的范围 rect.DeflateRect(200,30); rect.OffsetRect(0,15);

//画下象棋棋盘的背景

CBrush brush(RGB(128,128,128)); dc.FillRect(rect,&brush);

//无聊,给点立体感 rect.InflateRect(2,2);

dc.Draw3dRect(rect,RGB(255,255,255),RGB(255,255,255)); rect.DeflateRect(2,2);

//开始画纵横线

CPen pen(PS_SOLID,2,RGB(0,0,0)); CPen *pOldPen = dc.SelectObject(&pen);

int nGridWidth = rect.Width()/8; //横向宽度,共格 int nGridHeight = rect.Height()/9; //纵向宽度,共格

for(int i = 0; i < 10; ++i) //画横线,10笔 {

int y = (nGridHeight * i) + rect.top; dc.MoveTo(rect.left,y); dc.LineTo(rect.right,y); }

for(int i = 0; i < 8; ++i) //画竖线,画笔,空下最右的竖线 {

int x = (nGridWidth * i) + rect.left;

//中间为界限,无竖线 dc.MoveTo(x,rect.top);

dc.LineTo(x,rect.top + nGridHeight * 4); dc.MoveTo(x,rect.top + nGridHeight * 5); dc.LineTo(x,rect.bottom); }

//补上左界限的竖笔及最右的竖线,此以rect.right画最右竖线,最重合 dc.MoveTo(rect.left,rect.top + nGridHeight * 4); dc.LineTo(rect.left,rect.top + nGridHeight * 5); dc.MoveTo(rect.right,rect.top); dc.LineTo(rect.right,rect.bottom);

//输出文字“楚河汉界” dc.SelectObject(pOldPen);

CRect textRect(rect.left,rect.top + nGridHeight * 4, rect.right,rect.top + nGridHeight * 5); CFont font;

font.CreatePointFont(520,_T(\宋体\

CFont *pOldFont = dc.SelectObject(&font);

dc.SetBkMode(TRANSPARENT);

dc.DrawText(_T(\楚河 汉界\

DT_SINGLELINE | DT_CENTER | DT_VCENTER); dc.SelectObject(pOldFont); //

楚河汉界:

UINT uSize = 35; CFont fnt; LOGFONT lf;

TCHAR text[] = _T(\楚 河 汉 界\memset(&lf, 0, sizeof(LOGFONT)); lstrcpy(lf.lfFaceName, _T(\

int cyPixels = pDC->GetDeviceCaps(LOGPIXELSY); lf.lfHeight = -MulDiv(uSize, cyPixels, 72); fnt.CreateFontIndirect(&lf); pDC->SelectObject(&fnt);

pDC->TextOut(120, 317, text, wcslen(text));

网文字结合棋盘: void CchessView::Drawline(CDC* pDC) {

for (i = 0; i < 10; i++) { }

for (i = 0; i < 9; i++) { }

dc.MoveTo(50, 250); dc.LineTo(50, 300); dc.MoveTo(450, 250);

dc.MoveTo(50 + 50 * i, 50); dc.LineTo(50 + 50 * i, 250); dc.MoveTo(50 + 50 * i, 300);

dc.LineTo(50 + 50 * i, 500);//画竖线 dc.MoveTo(50,50+50*i);

dc.LineTo(450, 50 + 50 * i);//画横线 CClientDC dc(this); CRect rect;

GetClientRect(&rect); int i,j;

CPen pen(PS_SOLID, 2, RGB(0, 0, 0)); CPen *pOldPen = dc.SelectObject(&pen);

int nGridWidth = rect.Width() / 8; //横向宽度,共格 int nGridHeight = rect.Height() / 9;

dc.LineTo(450, 300);//连接界限四点 dc.MoveTo(200,400); dc.LineTo(300,500); dc.MoveTo(200,500); dc.LineTo(300,400); dc.MoveTo(200,50); dc.LineTo(300,150); dc.MoveTo(200,150); dc.LineTo(300,50);//画斜线 for (j = 0; j < 2;j++) for (i = 0; i < 4; i++) {

dc.MoveTo(65+100*i,195+150*j); dc.LineTo(55+100*i,195+150*j); dc.LineTo(55+100*i,185+150*j);

dc.MoveTo(65 + 100 * i, 205 + 150 * j); dc.LineTo(55 + 100 * i, 205 + 150 * j); dc.LineTo(55 + 100 * i, 215 + 150 * j); dc.MoveTo(145 + 100 * i, 185 + 150 * j); dc.LineTo(145 + 100 * i, 195 + 150 * j); dc.LineTo(135 + 100 * i, 195 + 150 * j); dc.MoveTo(135 + 100 * i, 205 + 150 * j); dc.LineTo(145 + 100 * i, 205 + 150 * j); dc.LineTo(145 + 100 * i, 215 + 150 * j);

}//兵

for (j = 0; j < 2;j++) for (i = 0; i < 2; i++) {

dc.MoveTo(95+i*300,135+j*250); dc.LineTo(95+i*300,145+j*250); dc.LineTo(85+i*300,145+j*250);

dc.MoveTo(105 + i * 300, 135 + j * 250); dc.LineTo(105 + i * 300, 145 + j * 250); dc.LineTo(115 + i * 300, 145 + j * 250); dc.MoveTo(115 + i * 300, 155 + j * 250); dc.LineTo(105 + i * 300, 155 + j * 250);

搜索更多关于: MFC中国象棋程序 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

m_pMainWnd = new CMainWindow; m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); m_pMainWnd->UpdateWindow(); return TRUE; } BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd) ON_WM_PAINT() END_MESSAGE_MAP() CMainWindow::CMainWindow() { Create(NULL,_T(\象棋棋盘\ } //CMainWindow mesage map and member functions void CMainWindow::OnPaint() { CPaint

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com