1. 创建图像和画布
IMAGE image;定义一个IMAGE叫做image
loadimage(&image, _T(“路径\1.jpg”),100,100);把路径下图片赋给image,并且拉伸为100*100 ,如果只需要加载图片到绘图窗体上, 那么请将 loadimage 的第一个参数设置为 NULL 即可,这样就不需要定义 IMAGE 对象了。
image.getwidth();//获取图片image的宽
image.getheight();//获取图片image的高
initgraph(640, 480); //创建一个640*480的画布
initgraph(w,h, SHOWCONSOLE);//创建一个画布并保留控制台
putimage(0, 0, width, high,&image,x,y);//把图像image放入画布中,并且左上角在(0,0)位置,图形的宽为width,长为high,从(x,y)处开始取图,且(width, high,x,y)可以不写
closegraph(); //关闭画布
getimage(&img,70, 70, 60, 60);//以画布上(70,70)为左上角截取长宽为(60,60)的图像放入img中
2. 文字操作
setbkcolor(YELLOW);
setbkcolor(RGB(180,24,137)); //设置文字颜色
settextstyle(30, 30, “楷体”);//设置文字格式(长,平均宽度,字体)
sprintf_s(num, “%d”,i);//把int格式的i转化为字符串形式的num,并在下一条语句中输出在画布上
outtextxy(10,10,“小猫猫”); //在(10,10)处显示文字“小猫猫”
3. 画线操作
setlinecolor(RED);//设置直线颜色为红色
setlinestyle(PS_SOLID, 10);//设置线的格式
line(30, 50, 30, 100);//划直线连接(30,50)和(30,100)
4. 画点操作
putpixel(x,y,BULE);//在图形窗口的(x,y)处显示一个颜色为蓝色的点
5. 画矩形操作
setfillcolor(RED);//设置填充色
rectangle(x,y,xx,yy);//矩形左上角坐标(x,y)、右下角坐标(xx,yy)画一个矩形
6. 画圆操作
fillcircle(x, y,r);//以(x,y)为圆心,划半径为r的圆
7. 清空画布
cleardevice();//将当前图形窗口清空,还原至背景颜色。
8. XOR模式
setwritemode(R2_XORPEN); //设置XOR绘图模式,重复画线会恢复背景颜色,颜色叠加部分有重叠效果
9. 延时操作
Sleep(100);延时100毫秒,降低CPU占有率
10. 计秒数
#include
clock_t start=clock();
clock_t end=(clock()-start)/CLOCKS_PER_SEC;
11. 随机函数
#include
int num=rand()%100;
12. 颜色:
BLACK 黑 DARKGRAY
深灰 BLUE 蓝
LIGHTBLUE 亮蓝 GREEN绿
LIGHTGREEN 亮绿 CYAN 青 LIGHTCYAN 亮青 RED 红 LIGHTRED 亮红
MAGENTA 紫 LIGHTMAGENTA 亮紫 BROWN棕 YELLOW黄 LIGHTGRAY 浅灰 WHITE 白
纯绿色 0x00ff00 RGB(0,
255, 0)
青色 0xffff00 RGB(0,
255, 255) 注:青=蓝+绿
中灰色 0x7f7f7f RGB(127,
127, 127)
黄色 0x00ffff RGB(255,
255, 0) 注:黄=红+绿
颜色操作:
int c = getpixel(100, 100); 获取(100,100)处的颜色并返回给c
putpixel(100, 100,c);把颜色c放到画布(100,100)处
(0xff0000 - (c & 0xff0000)) | (0x00ff00 - (c &
0x00ff00)) | (0x0000ff - (c & 0x0000ff));//底片效果
13. 键盘操作:(捕获一个键盘输入并输出)
char c;
if(kbhit())
c=getch();
14. 鼠标操作:
MOUSEMSG msg; //定义一个鼠标消息
msg=GetMouseMsg();//获取鼠标消息
switch(msg.uMsg)
{
case WM_MOUSEMOVE: ……break;//鼠标移动消息
case WM_MOUSEWHEEL: ……break;//
鼠标滚轮拨动消息
case WM_LBUTTONDOWN: ……break;//
左键按下消息
case WM_MBUTTONDOWN: ……break;//
中键按下消息
case WM_RBUTTONDOWN: ……break;//
右键按下消息
}
Ps:在此例中可用msg.x和msg.y来确定鼠标位置
WM_MOUSEMOVE 鼠标移动消息
WM_MOUSEWHEEL 鼠标滚轮拨动消息
WM_LBUTTONDOWN 左键按下消息
WM_LBUTTONUP 左键弹起消息
WM_LBUTTONDBLCLK 左键双击消息
WM_MBUTTONDOWN 中键按下消息
WM_MBUTTONUP 中键弹起消息
WM_MBUTTONDBLCLK 中键双击消息
WM_RBUTTONDOWN 右键按下消息
WM_RBUTTONUP 右键弹起消息
WM_RBUTTONDBLCLK 右键双击消息