边界框函数
边界框函数有很多,常见的边界框函数有Arc 、Ellipse 、Rectangle 、RoundRect、Chord 、Pie 。这些函数严格意义上来讲不算是画线函数。这些函数是在画线,但它们同时又填入画刷填入一个封闭区域。
上面提到的函式有一个共同特性,即它们都是依据一个矩形边界框来绘图 的。定义一个包含该物件的框,即边界框(bounding box),Windows 就在这个框内画出该物件。
最简单的函数就是Rectangle函数。
BOOL Rectangle(
HDC hdc,
int left,
int top,
int right,
int bottom
);
点(left,top)为矩形的左上角,(right,bottom)是矩形的右下角,下图为该函数画出的矩形,矩形的边总是垂直或者平行于显示器。

Windows 在边界框内画图。可以将显示器想像成一个网格, 其中,每个图素都在一个网格单元内。边界框画在网格上,然后在边界框内画 矩形,下面说明了图形画出来时的样子:

Rectangle并不算作严格画线函数,GDI也会填入到封闭区域,只不过由于使用白色填入封闭区域内不明显。
下面是使用Rectangle函数的例子
/*
例1:Rectangle函数的使用
*/
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) {
HDC hdc;
static int cxClient, cyClient;
int i;
PAINTSTRUCT ps;
RECT rect;
switch (message)
{
case WM_SIZE:
cxClient = LOWORD(lparam);
cyClient = HIWORD(lparam);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
Rectangle(hdc, 0, 0

最低0.47元/天 解锁文章
1953

被折叠的 条评论
为什么被折叠?



