VC6制作五子棋有关问题
VC6制作五子棋问题
在开发过程中遇到几个函数不明白 请各位大神解释下:
1、
这段代码去掉之后 点击鼠标之后老是重新画棋盘了一样很乱 而且鼠标点击位置不出现棋子 而是其它地方出现棋子 这是为什么?
2、 pDC->BitBlt(px*20+32,py*20+32,160,160,&Dc,0,0,SRCCOPY); 这里面参数都是什么意思?看msdn不是很明白
------解决思路----------------------
(1)你贴的代码不完整,这些代码是写在哪里的都没交代。
(2)简单来说就是往棋盘上绘制棋子。前面两个参数是棋子的坐标,然后的两个参数是棋子的大小,再往后是dc(你可以理解为画布),最后参数是从哪里复制,实现将棋子图片放在srccopy中了。
------解决思路----------------------
pDC->BitBlt(px*20+32,py*20+32,160,160,&Dc,0,0,SRCCOPY);
主要参数为(画布的左上角X坐标,画布的左上角Y坐标,画布的宽度,画布的高度,内存画布地址,内存画布的左上角X坐标,内存画布的左上角Y坐标)
------解决思路----------------------
1.首先,你应该知道MFC里画图是不能直接在DC中画的,要在内存DC中画,然后再把画好的复制到DC上。DC就相当于画室,要想在画室里画画,先要找一个画布(内存DC),在画布上画好了之后,再把画布拿到画室中去。
2.在画图中的坐标是以左上角作为原点,向左 为x轴,向下为y轴。所以,画图时坐标需要设置好。
3..CreateCompatibleDC该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联。
4.CClientDC是CDC派生类。都可以用。
在开发过程中遇到几个函数不明白 请各位大神解释下:
1、
CDC *pDC=GetDC();
CDC Dc;
if(Dc.CreateCompatibleDC(pDC)==FALSE)
AfxMessageBox("Can't create DC");
这段代码去掉之后 点击鼠标之后老是重新画棋盘了一样很乱 而且鼠标点击位置不出现棋子 而是其它地方出现棋子 这是为什么?
2、 pDC->BitBlt(px*20+32,py*20+32,160,160,&Dc,0,0,SRCCOPY); 这里面参数都是什么意思?看msdn不是很明白
------解决思路----------------------
(1)你贴的代码不完整,这些代码是写在哪里的都没交代。
(2)简单来说就是往棋盘上绘制棋子。前面两个参数是棋子的坐标,然后的两个参数是棋子的大小,再往后是dc(你可以理解为画布),最后参数是从哪里复制,实现将棋子图片放在srccopy中了。
------解决思路----------------------
pDC->BitBlt(px*20+32,py*20+32,160,160,&Dc,0,0,SRCCOPY);
主要参数为(画布的左上角X坐标,画布的左上角Y坐标,画布的宽度,画布的高度,内存画布地址,内存画布的左上角X坐标,内存画布的左上角Y坐标)
------解决思路----------------------
1.首先,你应该知道MFC里画图是不能直接在DC中画的,要在内存DC中画,然后再把画好的复制到DC上。DC就相当于画室,要想在画室里画画,先要找一个画布(内存DC),在画布上画好了之后,再把画布拿到画室中去。
2.在画图中的坐标是以左上角作为原点,向左 为x轴,向下为y轴。所以,画图时坐标需要设置好。
3..CreateCompatibleDC该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联。
4.CClientDC是CDC派生类。都可以用。