console也是窗体,自然也可以在其中画图,但是console窗体与windows窗体又有不同,主要如下:
1 console窗体是由window内部产生的,很多细节并没有暴露给用户,所以有很多事用户干不了,比如自己没办法指定回调函数,这就意味着无法改变默认的消息处理方式。
2 console窗体中有个富文本编辑框(?)
3 windows窗体中画图主要是通过WM_PAINT消息实现的,但是console中由于没法修改回调函数,因此无法操作WM_PAINT消息,绘图只能手工绘制,同时刷新时也需要自己写刷新语句。在console中要实现定时刷新可以通过SetTimer()+InvalidateRect() 来实现。通过观察发现,使用此方法会出现,显示的内容一闪而过,并不能停留。(解决方法从下面程序中说明)
动态绘制图像(游戏)的一般步骤:(利用定时器)
1,设置console样式
2,创建定时器,并分发定时器产生的消息
3,实现定时器指定的回调函数,实现不断绘制
tip:在实现重绘时,由于不能通过WM_PAINT实现,可通过invalidaterect函数擦除console窗体上的图像,然后重新绘制
#include <conio.h>
#include <stdio.h>
#include <tchar.h>
#include <window