设为首页 加入收藏

TOP

图形基础(四十九)
2010-12-30 21:10:52 来源: 作者: 【 】 浏览:40229
Tags:图形 基础
INT aptFigure [10] = {10,70, 50,70, 50,10, 90,10, 90,50,
30,50, 30,90, 70,90, 70,30, 10,30 };
static int cxClient, cyClient ;
HDC hdc ;
int i ;
PAINTSTRUCT ps ;
POINT apt[10] ;

switch (message)
{
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

SelectObject (hdc, GetStockObject (GRAY_BRUSH)) ;

for (i = 0 ; i < 10 ; i++)
{
apt[i].x = cxClient * aptFigure[i].x / 200 ;
apt[i].y = cyClient * aptFigure[i].y / 100 ;
}

SetPolyFillMode (hdc, ALTERNATE) ;
Polygon (hdc, apt, 10) ;

for (i = 0 ; i < 10 ; i++)
{
apt[i].x += cxClient / 2 ;
}

SetPolyFillMode (hdc, WINDING) ;
Polygon (hdc, apt, 10) ;

EndPaint (hwnd, &ps) ;
return 0 ;

case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

图形的座标(划分为100×100个单位)储存在aptFigure阵列中。这些座标是依据显示区域的宽度和高度划分的。程式显示图形两次,一次使用ALTERNATE填入方式,另一次使用WINDING方式。结果见图5-17。


 

图5-17 ALTWIND的显示

用画刷填入内部
 

Rectangl

首页 上一页 46 47 48 49 50 51 52 下一页 尾页 49/83/83
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇键盘 下一篇输出文字

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: