+ -
当前位置:首页 → 问答吧 → api绘制棋子遇到了小问题..标题多长才算长...............

api绘制棋子遇到了小问题..标题多长才算长...............

时间:2011-12-26

来源:互联网

话说我想写个五子棋的小程序,本来打算10天写完的,这都第二天了,遇到了这个小问题就卡住了,各位大大帮帮忙吧,我算法还没动呢....

是这样的,棋盘我画好了,在WM_PAINT消息时BeginPaint和EndPaint之间画的,然后我在WM_LBUTTONDOWN消息时发送一条WM_PAINT消息,设定wParam为IDXX.

然后在WM_PAINT中检查wParam是不是IDXX,如果是就调用Ellipse画圆,可是我在窗口客户区把鼠标都点坏了都不见圆画出来.

假如把检查wParam那两句注释掉则可以画出圆,但这不是我要的结果啊.

我已经试验了,假如我在
Assembly code

.if wParam==IDXX
invoke Ellipse,hDc,22,22,55,55
;----------------这里
.endif



假如我在那里加一句invoke MessageBox,0,0,0,0的话,我点一下窗口就弹出一个确定,表示Ellipse确实工作了,为什么没有显示出来呢??

请大大们帮忙.....

作者: hygf99   发布时间: 2011-12-26

好吧,话说我找到了一个方法

用EndPaint获得的hDc句柄仅仅是无效区域的句柄,通过看书得知可以用GetDC来获得本程序的环境句柄,于是我很惬意的通过获得的hDc画了n个黑白棋子,正当我兴致勃勃要将所有交界点都画上棋子的时候,某不明生物通过扣扣弹出了一个窗口,好吧,聊天完之后,我再次弹出我五子棋,结果,令人大吃一惊的事情发生了......


我画的棋子呀,竟然消失了...这是肿么一回事呢?肯定是该死的WM_PAINT消息,重新绘制了客户区,把棋盘绘制了,但是我画的棋子统统没有了
把窗口最小化然后再恢复也会出现这种情况,目前我正在寻找解决方法,各位大大有没有办法呀,让小的省省力气......

作者: hygf99   发布时间: 2011-12-27

热门下载

更多