mfc笔记-俄罗斯方块
来源:互联网 发布:淘宝上开店 编辑:程序博客网 时间:2024/06/14 14:06
一年前刚学完c就很想写俄罗斯方块。自己看了点windows编程的书。但是因为没有学C++,对class完全没有概念。随便一个Point的对象就可以搞到头晕都没懂。现在写完painter来写俄罗斯方块顿觉清晰很多。
1.将一个字符串写到屏幕指定位置。
BOOL TextOut(
HDChdc, // 设备描述表句柄
int nXStart, // 字符串的开始位置 x坐标
intnYStart, // 字符串的开始位置 y坐标
LPCTSTRlpString, // 字符串
intcbString // 字符串中字符的个数
);
2.无法打开预编译头
项目->属性->c/c++->预编译->是否使用预编译头文件->选择不使用
3.memcpy memset
memcpy
extern void *memcpy(void *dest,void*src,unsigned int count);
#include <string.h>
把str的东西拷贝到dest去。Count为拷贝内容的大小
内存拷贝。任何数据类型的都可以。但两块内存不可以重叠。
memset
extern void *memset(void *buffer,int c,intcount);
#include <string.h>
方便清空某数据类型的值,或初始化。
memset(&stTest,0,sizeof(structsample_struct));
即把类型为struct sample_struct的stTest的各属性都赋值为0.
4.显示图像
计算坐标时要注意程序中的屏幕坐标是从左到右x增大,从上到下一y增大。
故旋转坐标(x,y)顺时针旋转90度变为(-y,x)。
5. SelectObject - 函数功能
函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
函数原型:HGDIOBJSelectObject(HDC hdc, HGDIOBJ hgdiobj);
hdc:设备上下文环境的句柄。
hgdiobj:被选择的对象的句型。
6. BitBlt - 函数功能
该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
BitBlt - 函数原型
BOOL BitBlt(HDC hdcDest,int nXDest,intnYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);
BitBlt - 主要参数
hdcDest:指向目标设备环境的句柄。
nXDest:指定目标矩形区域左上角的X轴逻辑坐标。 nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。
nWidth:指定源和目标矩形区域的逻辑宽度。
nHeight:指定源和目标矩形区域的逻辑高度。
hdcSrc:指向源设备环境的句柄。
nXSrc:指定源矩形区域左上角的X轴逻辑坐标。
nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。
dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
下面列出了一些常见的光栅操作代码:
BLACKNESS:表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。
DSTINVERT:表示使目标矩形区域颜色取反。
MERGECOPY:表示使用布尔型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。
MERGEPAINT:通过使用布尔型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。
NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。
NOTSRCERASE:使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。
PATCOPY:将特定的模式拷贝到目标位图上。
PATPAINT:通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。
PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。
SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。
SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。
SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。
SRCINVERT:通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。
SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。
WHITENESS:使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。
返回值:如果函数成功,那么返回值非零;如果函数失败,则返回值为零。
7.clock()
开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clocktick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中. clock_t是一个长整形数。另外在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,因此,我们就可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间.
8. GetClientRect(&windowRect);//获取游戏窗口的大小用于下面设置内存位图的尺寸
9.使用Timer 要先设置SetTimer,最后不用了要KillTimer.
SetTimer(1,1000,NULL);
1:计时器名字
1000: 时间间隔
NULL: 使用OnTimer()函数
KillTimer(1);
1:计时器名字
- mfc笔记-俄罗斯方块
- MFC--俄罗斯方块编程笔记[1]
- 俄罗斯方块MFC
- MFC俄罗斯方块
- MFC-俄罗斯方块
- MFC实现的俄罗斯方块
- MFC 实现 俄罗斯方块
- MFC实现俄罗斯方块二
- MFC 实现俄罗斯方块三
- 俄罗斯方块(MFC)
- MFC双人版俄罗斯方块
- [原创]MFC实现的俄罗斯方块
- 俄罗斯方块(MFC)升级网络版
- 记MFC俄罗斯方块制作过程
- 游戏发布:俄罗斯方块MFC版源码
- 基于mfc下的俄罗斯方块程序设计
- 基于MFC的俄罗斯方块小游戏(一)
- 基于MFC的俄罗斯方块小游戏(二)
- 如何看待阅读?
- Mysql数据类型简明说明
- 不经意间犯的错_临时对象
- 和菜鸟一起学OK6410之最简单字符驱动
- 7.面板上的第一个标签
- mfc笔记-俄罗斯方块
- 2012年十大手机设计趋势
- Ubuntu 系统优化
- 各种命令行帮助命令
- 8.更多组件
- 三维GIS开发一
- 卖程序的小女孩
- web测试之url测试
- 通过前序和中序遍历数组重建树