VS2015中获取Windows窗口控件信息(2-2)

2.2 回调函数 2.2.1 函数格式 在“2.1 EnumChildWindows()函数”中提到,调用EnumChildWindows()函数前,需要定义一个WNDENUMPROC类型的回调函数。该回调函数的格式为 BOOL CALLBACK EnumChildProc( _In_H...

2019-03-29 16:33:14

阅读数 27

评论数 0

VS2015中获取Windows窗口控件信息(2-1)

在VS2015中,可以通过API函数获取Windows窗口中控件的信息,包括控件句柄、控件显示的文字以及控件类型等。其流程为,首先获取Windows指定窗口的句柄,之后通过回调函数遍历该窗口中的控件句柄,最后通过控件句柄获取控件文字及类型。 1 获取窗口句柄 可以通过FindWindow()函...

2019-03-29 16:28:05

阅读数 38

评论数 0

VS2015中printf()函数与编码

1 printf()与GBK编码 printf()函数用于在标准输出流中输出指定格式的数据。当要输出GBK格式的汉字时, charch[] = "国家"; printf("%s\n", ch); 能够在控制台中显示GBK格式的汉字,如图1所示。 ...

2019-03-28 17:20:05

阅读数 47

评论数 0

C++中二维数组与指针

1 二维数组 C++中所说的多维数组实际上是数组的数组,例如 int ia[3][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9 ,10, 11}}; 此时ia实际上是一个包含3个元素的数组,而每个元素又是一个包含4个整型类型的数组。 2 指向数组的指针 ...

2019-03-19 11:33:17

阅读数 31

评论数 0

scanf()函数的用法

1 scanf()函数简介 scanf()函数的作用是从标准的输入流中读取数据,并将读取到的数据保存到指定的变量中。其格式为 int scanf( const char *format [, argument]... ); 其中,参数format指定了读取数据的方式;argument是一个...

2019-03-07 15:57:56

阅读数 88

评论数 2

VS2015中基于TCP客户端的实现

在《VS2015中基于TCP服务端的实现》中实现了基于TCP的服务端。服务端通过调用listen()函数将套接字设置为监听模式,并且调用accept()函数等待客户端的连接。在基于TCP的客户端中,主要的流程包括创建客户端套接字和连接服务端两个步骤。 1 创建客户端套接字 通过socket()...

2019-03-05 11:35:50

阅读数 99

评论数 0

VS2015套接字编程中 _WINSOCK_DEPRECATED_NO_WARNINGS的解决方法

使用VS2015进行套接字编程时,在使用了一些不推荐的老旧函数时,编译器会给出如下告警信息,如图1所示。 图1 编译器告警信息 以上告警信息的意思是,inet_addr()函数已经过期,推荐使用inet_pton()函数或者InePton()函数来替代该过期函数,或者定义_WINSOCK_...

2019-02-26 16:03:20

阅读数 69

评论数 0

C++中string类型的erase()函数详解

标准库类型string表示可变长的字符序列。可以通过string类的erase()函数来对该字符序列进行删除操作。erase()函数共有3种格式,分别用来删除指定位置的字符、删除指定长度的字符串和删除指定范围的字符串。 1 删除指定位置的字符 erase()函数用于删除指定位置字符的格式为 ...

2019-02-25 11:10:53

阅读数 60

评论数 0

VS2015中基于TCP/IP的服务端的实现(2-2)

3 监听套接字 在绑定了套接字之后,接下来使用listen()函数将套接字设置为监听状态,等待客户端的连接。listen()函数的格式为 int WSAAPI listen( SOCKET s, int backlog ); 其中,参数s表示要设置监听状态的套接字;如果有多个客户端连接处于...

2019-01-31 11:53:10

阅读数 144

评论数 0

VS2015中基于TCP/IP的服务端的实现(2-1)

在C/S(客户端/服务端)模式中,包含基于连接和基于非连接两种通信模式。基于连接的通信是可靠通信,其依赖的协议是TCP/IP协议。 基于TCP/IP协议的服务端工作流程包括创建套接字、绑定套接字、接听套接字和接收客户端的连接等步骤。 1 创建套接字 创建套接字的方法请参考《Winsock网络...

2019-01-31 11:50:07

阅读数 139

评论数 0

C++中_kbhit()函数与_getch()函数

1 _khbit()函数 _kbbit()函数的作用是检查控制台窗口的按键是否被按下。其格式为 int _kbhit( void ); 如果在调用该函数时,有按键被按下,则返回一个非零值,否则该函数的返回值是0。需要注意的是,该函数是一个非阻塞函数,不管有没有按键被按下,该函数都会立即返回...

2019-01-27 18:13:49

阅读数 226

评论数 0

C++中函数模板的返回值是模板类型参数的调用方法

1 函数模板 模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号扩住的一个或多个模板形参的列表,形参之间以逗号分隔。关于函数模板的详细介绍,请参考《C++中模板函数及模板类的使用(上)》。 2 函数模板的返回值是模板类型参数 函数模板中的参数和返回值都可以是模板类型参...

2019-01-22 12:33:54

阅读数 144

评论数 0

VS2015贪吃蛇代码分析(10-10)

点我下载代码 2.5.3 暂停游戏 当按下空格按键后,游戏暂停,当再次按下空格按键后,游戏继续。回到自定义函数StartGame()中,当在该函数中判断了空格按键被按下,则调用自定义函数PauseGame()函数进行处理,该函数的定义如下。 void PauseGame(){ while...

2019-01-16 12:55:03

阅读数 61

评论数 0

VS2015贪吃蛇代码分析(10-9)

点我下载代码 (7)咬到自己的贪吃蛇 在响应移动的按键后,除了判断贪吃蛇是否撞到墙、是否吃到食物之外,还要判断是否咬到自己。通过自定义函数IsBiteSnake()实现。判断贪吃蛇是否要到自己,就是要判断蛇的头部是否与身体的某个节点重合,如果重合,则说明要到了自己,否则说明没有要到自己。 ...

2019-01-16 12:53:09

阅读数 58

评论数 0

VS2015贪吃蛇代码分析(10-8)

点我下载代码 (4)判断是否吃到食物 在设置了贪吃蛇头部的下一个位置之后,接下来判断贪吃蛇是否吃到了食物。 if (nexthead->x == food->x && nexthead-&a...

2019-01-16 12:51:18

阅读数 53

评论数 0

VS2015贪吃蛇代码分析(10-7)

点我下载代码 2.5.2 显示蛇的行动 通过自定义MoveSnake()显示贪吃蛇的行动。 (1)是否撞墙 在显示贪吃蛇的行动之前,首先要判断贪吃蛇是否撞到了墙上。通过自定义函数IsKnockWall()函数判断是否撞到墙上。在IsKnockWall()函数中,通过“2.3.2 ShowS...

2019-01-16 12:47:58

阅读数 215

评论数 0

VS2015贪吃蛇代码分析(10-6)

点我下载代码 2.5 开始游戏 开始游戏实际上就是贪吃蛇开始接收键盘的控制。通过自定义函数StartGame()实现。 2.5.1 判断按键信息 通过Windows API函数GetAsyncKeyState()判断按键信息。GetAsyncKeyState()函数的作用是判断在调用该函数...

2019-01-16 12:43:57

阅读数 43

评论数 0

VS2015贪吃蛇代码分析(10-5)

点我下载代码 2.4 显示食物 通过自定义ShowFood()函数显示贪吃蛇的食物。食物显示的条件有两个:一个是必须显示在地图的范围之内;第二个是显示的位置不能与贪吃蛇的蛇身重合。 2.4.1 在地图范围内显示食物 在自定义ShowFood()函数中,有如下代码 snake *temp...

2019-01-16 12:41:12

阅读数 57

评论数 0

VS2015贪吃蛇代码分析(10-4)

点我下载代码 2.3 显示贪吃蛇 从图3中可以看出,贪吃蛇初始状态是用5个星号表示的。 2.3.1 贪吃蛇的节点 把组成蛇的星号看成蛇的节点,则每个节点可用如下结构表示。 typedef struct SNAKE { int x; int y; struct SNAKE *nex...

2019-01-16 12:37:07

阅读数 56

评论数 0

VS2015贪吃蛇代码分析(10-3)

点我下载代码 2 主程序的实现 主程序包含了显示地图、显示提示信息和操控贪吃蛇等内容。 2.1 显示地图 游戏的地图如图3左侧所示。可以通过自定义函数ShowMap()来实现。 bool ShowMap() { int i; for (i = 0; i<58...

2019-01-16 12:33:43

阅读数 49

评论数 3

提示
确定要删除当前文章?
取消 删除
关闭
关闭