C++ 编写中国象棋 棋子图片格式调用的问题 20

C++编写中国象棋游戏。调用绘图函数Ellipse()绘制的棋子大小和TextOut()绘制棋子名称(“兵”“马”“炮”等等)。但是在德文VS2008和德文系统上因为语言... C++ 编写中国象棋游戏 。
调用绘图函数Ellipse()绘制的 棋子大小和TextOut()绘制棋子名称(“兵” “马”“炮”等等)。
但是在德文VS2008和德文系统上因为语言的关系无法显示! 如何把棋子更改为调用图片?请指教
void Graphics(int x,int y,int RorB,LPCTSTR ChessmanName)
{
HFONT hf_Red;//Schrift
hf_Red=CreateFont(32,0,0,0,FW_HEAVY,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"红体");
HPEN hPen; //Pensil
hPen=CreatePen(PS_SOLID,2,RGB(30,30,30));

SelectObject(hdc,hPen);
SetBkColor(hdc,RGB(255,255,255));//棋子大小绘制 还有红方和黑方

if(RorB==1)
{
SetTextColor(hdc,RGB(255,0,0));
}
else
{
SetTextColor(hdc,RGB(0,0,0));
}
// PAINTSTRUCT ps;
// hdc=BeginPaint(hWnd, &ps);
Ellipse(hdc,xArray[x][y]-23,yArray[x][y]-23,xArray[x][y]+23,yArray[x][y]+23);
SelectObject(hdc,hf_Red);
TextOut(hdc,xArray[x][y]-14,yArray[x][y]-16,ChessmanName,strlen(ChessmanName));

// EndPaint(hWnd, &ps);
}
void DynamicChessman(int x,int y)
{
int RorB; //Schrift Farbe
int FontSize=30,EllipseSize=23; //FontSize Schrift Groesse,EllipseSize Spielstein Groesse
if(InfoArray[x][y]<10)
RorB=1;
else
RorB=0;
HFONT hf_Red;//schrift
hf_Red=CreateFont(32,0,0,0,FW_HEAVY,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"红体");
HPEN hPen; //malen
hPen=CreatePen(PS_SOLID,2,RGB(30,30,30)); //pinsel
SelectObject(hdc,hPen);
LPCTSTR ChessmanName;
switch(InfoArray[x][y])
{
//malen Rot Spielstein
case 7:
ChessmanName=“兵”
break;
;
case 6:
ChessmanName="炮";
break;
;
case 5:
ChessmanName="帅";
break;
;
case 4:
ChessmanName="仕";
break;
;
case 3:
ChessmanName="相";
break;
;
case 2:
ChessmanName="马";
break;
;
case 1:
ChessmanName="车";
break;
;

//malen SchwarzSpielstein
case 17:
ChessmanName="卒";
break;
;
case 16:
ChessmanName="炮";
break;
;
case 15:
ChessmanName="将";
break;
;
case 14:
ChessmanName="士";
break;
;
case 13:
ChessmanName="象";
break;
;
case 12:
ChessmanName="马";
break;
;
case 11:
ChessmanName="车";
break;
;
default:
break;
}
if(RorB==1)
{
SetTextColor(hdc,RGB(255,0,0));
}
else
{
SetTextColor(hdc,RGB(0,0,0));
}
for(;EllipseSize<=28;EllipseSize++,FontSize+=2)
{
Ellipse(hdc,xArray[x][y]-EllipseSize,yArray[x][y]-EllipseSize,xArray[x][y]+EllipseSize,yArray[x][y]+EllipseSize);
hf_Red=CreateFont(FontSize,0,0,0,FW_HEAVY,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"红体");
SelectObject(hdc,hf_Red);
TextOut(hdc,xArray[x][y]-EllipseSize+10,yArray[x][y]-EllipseSize+8,ChessmanName,strlen(ChessmanName));//汉字的输出在德文系统上没法显示 就是这里的问题
Sleep(1000);

}
}
我已经把图片都添加到资源文件里了 还是不成啊
展开
 我来答
zpbaaa
2010-08-25 · TA获得超过173个赞
知道答主
回答量:37
采纳率:0%
帮助的人:43.9万
展开全部
用位图Bitmap,在添加的资源文件里,然后用CBitmap类对位图进行操作。
LoadBitmap()函数载入位图
BitBlt()或StretchBit()显示位图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj9870
2010-08-24 · TA获得超过290个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:98.8万
展开全部
用位图Bitmap,在添加的资源文件里,然后可以用BITBLT输出,你去网上下载《VC++游戏编程》,百度文库里就有,你看一段程序就懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e1b9539c0c
2010-08-25 · TA获得超过734个赞
知道大有可为答主
回答量:2241
采纳率:33%
帮助的人:732万
展开全部
LS正解,用bitbit来输出位图,另外注意窗口重绘,这个是难点
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式