做一个简单的画板来画画
.................................不对不对。。。。。。。。。。。。。。。
画板功能:
画画(不要在意,这是废话)
设置笔刷粗细
清空
设置颜色(暂且不写)
直接上代码:
#include <iostream>
#include <conio.h>
#include <graphics.h>
using namespace std;
MOUSEMSG msg;
//设置4种粗细不同的笔刷//
void pen1()
{
msg = GetMouseMsg();
if (msg.uMsg == WM_MOUSEMOVE)
{
solidcircle(msg.x, msg.y, 5);
}
}
void pen2()
{
msg = GetMouseMsg();
if (msg.uMsg == WM_MOUSEMOVE)
{
solidcircle(msg.x, msg.y, 10);
}
}
void pen3()
{
msg = GetMouseMsg();
if (msg.uMsg == WM_MOUSEMOVE)
{
solidcircle(msg.x, msg.y, 15);
}
}
void pen4()
{
msg = GetMouseMsg();
if (msg.uMsg == WM_MOUSEMOVE)
{
solidcircle(msg.x, msg.y, 20);
}
}
///
int main()
{
char ch;
initgraph(600, 640);
HWND hWnd = GetHWnd();//获取窗口句柄
MoveWindow(hWnd, 0, 0, 600, 640, TRUE);//设置窗口位置(0,0)*此行代码可有可无,凭个人喜好
//如此行代码写了,请写上上一行代码。
setbkcolor(DARKGRAY);
cleardevice();
MessageBox(hWnd, L"按住1键、2键、3键或4键,移动鼠标,即可绘画。\n5键清空画板", L"欢迎使用PAINT绘画",MB_OK|MB_SETFOREGROUND);
setfillcolor(RGB(66,189,255));
BeginBatchDraw();
while (true)
{
flushmessage();//清空所有缓冲区
if (_kbhit())
{
ch = _getch();
if (ch == '1')
{
pen1();
}
if (ch == '2')
{
pen2();
}
if (ch == '3')
{
pen3();
}
if (ch == '4')
{
pen4();
}
FlushBatchDraw();
if (ch == '5')
{
cleardevice();//刷新界面,相当于清空画板
}
}
}
EndBatchDraw();
return 0;
}
几个重要函数:
BeginBatchDraw () ... EndBatchDraw() 不讲了,懒,详见上期
solidcircle( //函数参数:
int x //设置圆形所在的x坐标
int y //设置圆心所在的y坐标
int radius //设置圆的半径
)
setfillcolor(/*你要的颜色或使用RGB()*/) //设置填充颜色
setbkcolor(/*你要的颜色或使用RGB()*/) //设置背景颜色
cleardevice() //刷新