第一范文网 - 专业文章范例文档资料分享平台

MFC中国象棋程序

来源:用户分享 时间:2025/11/27 3:13:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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中国象棋程序 的文档
MFC中国象棋程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c224wf6trpm3y3j84w1k4_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top