1.1
画矩形,和线
winAPI
想用7种不同样式的画笔画线,然后利用画矩形函数画出一个封闭的矩形,并用6种不同的样式的画刷填色
关键代码
全局变量:
HPEN hPen[7];//添加全局变量
HBRUSH hBru[7];//添加全局变量// current instance
int sPen[7]={PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT,PS_NULL,PS_INSIDEFRAME};//画笔样式
int sBru[6]={HS_VERTICAL,HS_HORIZONTAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_BDIAGONAL};//画刷样式
初始化部分自己填写的代码:
for(i=0;i<=6;i++)
{
hPen[i]=CreatePen(sPen[i],1,RGB(255,0,0));
if(i==6)
{
hBru[i]=CreateSolidBrush(RGB(0,255,0));
}
else
{
hBru[i]=CreateHatchBrush(sBru[i],RGB(0,255,0));
}
}
MoveWindow(hWnd,10,10,650,350,true);
画图函数:
void MyPaint(HDC hdc)
{
int i;
int x1=0;
int x2=0;
int y=0;
for (i=0;i<=6;i++)
{
y=(i+1)*30;
SelectObject(hdc,hPen[i]);
MoveToEx(hdc,30,y,NULL);
LineTo(hdc,100,y);
}
x1=120;
x2=180;
for (i=0;i<=6;i++)
{
SelectObject(hdc,hBru[i]);
Rectangle(hdc,x1,30,x2,y);
x1+=70;
x2+=70;
}
}
重绘时操作系统回调函数进行消息处理的部分
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
//RECT rt;
//GetClientRect(hWnd, &rt);
//DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
hdc=GetDC(hWnd);
MyPaint(hdc);
ReleaseDC(hWnd,hdc);
break;