首页编程rectangle函数,rectangle()函数

rectangle函数,rectangle()函数

编程之家2023-11-0672次浏览

大家好,rectangle函数相信很多的网友都不是很明白,包括rectangle()函数也是一样,不过没有关系,接下来就来为大家分享关于rectangle函数和rectangle()函数的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

rectangle函数,rectangle()函数

rectangle()函数

这个函数画出来的“矩形”是在窗口里面的,窗口本身也是一个“矩形”。

你先这样理解。

窗口是一个很小的点,通过不断放大,变成我们所看到的窗口。

当他最小时,也就是上,下,左,右都会“0”时,就只剩一个点。

然后,随各个参数的扩大而变大。

当你调用这个函数,并画出图形时,会另外弹出一个窗口。

rectangle函数,rectangle()函数

假设这个窗口的大小为,100,100,100,100;

此时,这个rectangle,你调用它时,它的参照物,就是这个窗口。

你可以看到,你rectangle(50,50,50,50)的时候,

这个图形的起始位置就是在宽为50的地方开始绘出。

能理解不?

请教VB中使用API函数rectangle的问题

使用这个API函数之前应该先创建一个刷子,比如以下几种刷子:

rectangle函数,rectangle()函数

==========

CreateBrushIndirect

VB声明

Declare Function CreatePatternBrush Lib"gdi32" Alias"CreatePatternBrush"(ByVal hBitmap As Long) As Long

说明

用指定了刷子图案的一幅位图创建一个刷子

返回值

Long,如执行成功,则返回新刷子的一个句柄;否则返回零

参数表

参数类型及说明

hBitmap Long,指向一幅位图的句柄。如指定了单色位图,文本和背景色就会在图案中使用

注解

如不再需要,请用DeleteObject函数删除刷子。也请参考CreateBrush函数,它的参数与LOGBRUSH结构的字段是对应的

==========

CreateDIBPatternBrush,CreateDIBPatternBrushPt

VB声明

Declare Function CreateDIBPatternBrush& Lib"gdi32"(ByVal hPackedDIB As Long, ByVal wUsage As Long)

Declare Function CreateDIBPatternBrushPt& Lib"gdi32"(lpPackedDIB As Any, ByVal wUsage As Long)

说明

用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)

返回值

Long,如执行成功,返回指向刷子的一个句柄。零表示失败

参数表

参数类型及说明

hPackedDIB,lpPackedDIB Long,hPackedDIB是指向一个内存块的全局内存句柄。那个内存块包含了一个BITMAPINFO结构,后面跟随一幅与设备无关的位图。lpPackedDIB是具有相同配置的一个内存块的地址。如指定了单色DIB,DIB颜色就会忽略,而换用文本和背景颜色

wUsage Long,下述常数之一:

DIB_PAL_COLORS DIB颜色表,包含了当前逻辑调色板的索引

DIB_RGB_COLORS DIB颜色表,包含了32位的RGB色值

注解

编制win32应用程序的时候,最好使用CreateDIBPatternBrushPt

==========

CreateHatchBrush

VB声明

Declare Function CreateHatchBrush Lib"gdi32" Alias"CreateHatchBrush"(ByVal nIndex As Long, ByVal crColor As Long) As Long

说明

创建带有阴影图案的一个刷子(阴影图案见注解)

返回值

Long,如执行成功,返回指向新刷子的一个句柄。否则返回零。注意在不需要时,用DeleteObject清除刷子

参数表

参数类型及说明

nIndex Long,象下图那样指定一种阴影类型

crColor Long,指定刷子的RGB前景色

注解

//(图我贴不上来,你可以自己搜以下,一共六种常量,如下:HS_HORIZONTAL HS_VERTICAL HS_CROSS HS_FDIAGONAL HS_BDIAGONAL HS_DIAGCROSS)

==========

CreatePatternBrush

VB声明

Declare Function CreatePatternBrush Lib"gdi32" Alias"CreatePatternBrush"(ByVal hBitmap As Long) As Long

说明

用指定了刷子图案的一幅位图创建一个刷子

返回值

Long,如执行成功,则返回新刷子的一个句柄;否则返回零

参数表

参数类型及说明

hBitmap Long,指向一幅位图的句柄。如指定了单色位图,文本和背景色就会在图案中使用

注解

一旦刷子不再需要,记得用DeleteObject函数将其删除。不要在这个函数里使用作为DIB分区创建的位图

==========

然后选定一个刷子:

==========

SelectObject

VB声明

Declare Function SelectObject Lib"gdi32" Alias"SelectObject"(ByVal hdc As Long, ByVal hObject As Long) As Long

说明

每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式

返回值

Long,与以前选入设备场景的相同hObject类型的一个对象的句柄,零表示出错。如选定的对象是一个区域(Region),结果就是下列常数之一:SIMPLEREGION, COMPLEXREGION或 NULLREGION对区域进行描述, GDI_ERROR表示出错

参数表

参数类型及说明

hdc Long,一个设备场景的句柄

hObject Long,一个画笔、位图、刷子、字体或区域的句柄

注解

返回值通常用于获得选入DC的对象的原始值。绘图操作完成后,原始的对象通常选回设备场景。在清除一个设备场景前,务必注意恢复原始的对象

==========

之后调用Rectangle的API函数:

==========

Rectangle

VB声明

Declare Function Rectangle Lib"gdi32" Alias"Rectangle"(ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

说明

用当前选定的画笔描绘矩形,并用当前选定的刷子进行填充

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数类型及说明

hdc Long,设备场景的句柄

X1,Y1 Long,指定矩形左上角位置

X2,Y2 Long,指定矩形右下角位置

==========

类似的还有

==========

Ellipse

VB声明

Declare Function Ellipse Lib"gdi32" Alias"Ellipse"(ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

说明

描绘一个椭圆,由指定的矩形围绕。椭圆用当前选择的画笔描绘,并用当前选择的刷子填充

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数类型及说明

hdc Long,设备场景的句柄

X1,Y1 Long,约束矩形采用逻辑坐标的左上角位置

X2,Y2 Long,约束矩形采用逻辑坐标的右下角位置

==========

Arc,ArcTo

VB声明

Declare Function Arc& Lib"gdi32"(ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long)

Declare Function ArcTo& Lib"gdi32"(ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long)

说明

象注解中那样画一个圆弧。(X1,Y1)和(X2,Y2)定义了椭圆的一个范围(约束)矩形。从矩形中心点到点(X3,Y3)的一条线段与椭圆的交点标志着圆弧的起点。而到(X4,Y4)的一条线与椭圆的交点则标志着圆弧的终点。ArcTo函数会将当前画笔位置设为弧的终点,而Arc函数则不会对当前的画笔位置造成影响

返回值

Long,非零表示成功,零表示失败

参数表

参数类型及说明

hdc Long,一个显示场景的句柄

X1,Y1 Long,指定围绕椭圆的一个矩形的左上角位置

X2,Y2 Long,指定围绕椭圆的一个矩形的右下角位置

X3,Y3 Long,指定圆弧起点

X4,Y4 Long,指定圆弧终点

注解

在win16和win95中,约束矩形的宽度和高度必须在3——32766间。绘图方向肯定是逆时针方向。

在win nt中:绘图方向由SetArcDirection函数决定。默认为逆时针方向

==========

Chord

VB声明

Declare Function Chord Lib"gdi32" Alias"Chord"(ByVal As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long

说明

象注解中那样画一个弦。(X1,Y1)和(X2,Y2)定义了椭圆的一个范围(约束)矩形。点(X3,Y3)和点(X4,Y4)定义了一条线段。该线段与椭圆之间的区域就是“弦”

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数类型及说明

hdc Long,一个显示场景的句柄

X1,Y1 Long,指定围绕椭圆的一个矩形的左上角位置

X2,Y2 Long,指定围绕椭圆的一个矩形的右下角位置

X3,Y3 Long,指定与椭圆相交的一条线的一个点

X4,Y4 Long,指定与椭圆相交的一条线的另一个点

注解

在win16和win95中,约束矩形的宽度和高度必须在3——32766个单位之间。请参考Arc获得更详细的图例

==========

LineTo

VB声明

Declare Function LineTo Lib"gdi32" Alias"LineTo"(ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

说明

用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位置变成x,y点

返回值

Long,非零表示成功,零表示失败

参数表

参数类型及说明

hdc Long,设备场景的句柄

x,y Long,线段终点位置,采用逻辑坐标表示。这个点不会实际画出来;它不属于线段的一部分

注解

如重复调用这个函数和一个几何画笔,从而创建一系列线段,那么除非在一个路径的场景中调用,否则不会认为这些线段已结合到一起

==========

Pie

VB声明

Declare Function Pie Lib"gdi32" Alias"Pie"(ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long

说明

象注解里那样画一个饼图,X1,Y1,X2,Y2指定椭圆的一个约束矩形。从矩形的中心分别向X3,Y3和X4,Y4画一条线,这两条线与椭圆的交点定义了饼图占据椭圆的面积

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数类型及说明

hdc Long,指定一个显示场景的句柄

X1,Y1 Long,指定椭圆约束矩形的左上角位置

X2,Y2 Long,指定椭圆约束矩形的右下角位置

X3,Y3 Long,指定饼图的一个斜边

X4,Y4 Long,指定饼图的另一个斜边

注解

在win95和win16中,约束矩形的宽度和高度必须在3-32766之间

参考Arc函数

==========

最后还要DeleteObject

==========

DeleteObject

VB声明

Declare Function DeleteObject Lib"gdi32" Alias"DeleteObject"(ByVal hObject As Long) As Long

说明

用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放

返回值

Long,非零表示成功,零表示失败

参数表

参数类型及说明

hObject Long,一个GDI对象的句柄

注解

不要删除一个已选入设备场景的画笔、刷子或位图。如删除以位图为基础的阴影(图案)刷子,位图不会由这个函数删除——只有刷子被删掉

==========

画图的函数太多了,无法一一写下来,也欢迎您和我交流,共同进步

再给您一个例子,运行后点击窗口,会在Form1上画一个Rectangle:

==========

Option Explicit

Private Declare Function CreateSolidBrush Lib"gdi32"(ByVal crColor As Long) As Long

Private Declare Function Rectangle Lib"gdi32"(ByVal hDC As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Declare Function DeleteObject Lib"gdi32"(ByVal hObject As Long) As Long

Private Declare Function SelectObject Lib"gdi32"(ByVal hDC As Long, ByVal hObject As Long) As Long

Private Sub Form_Click()

Dim TempBrush As Long

Dim tOB As Long

'创建一个刷子

TempBrush= CreateSolidBrush(RGB(0, 0, 0))

'选定一个刷子

tOB= SelectObject(Me.hDC, TempBrush)

SelectObject Me.hDC, tOB

'画图

Rectangle Me.hDC, 15, 15, 50, 50

'删除对象

DeleteObject TempBrush

End Sub

solidrectangle函数是什么意思

Rectangle是长方形的意思,同时也是一个函数,使用该函数画一个矩形,可以用当前的画笔画矩形轮廓,用当前画刷进行填充。

函数原型:

BOOL Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);

参数:

hdc:设备环境句柄。

nLeftRect:指定矩形左上角的逻辑X坐标。

nTopRect:指定矩形左上角的逻辑Y坐标。

nRightRect:指定矩形右下角的逻辑X坐标。

nBottomRect:指定矩形右下角的逻辑Y坐标。

返回值:如果函数调用成功,返回值非零,否则返回值为0。

Windows NT:若想获得更多错误信息,请调用GetLastError函数。

备注:此函数不使用和改变当前位置。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。

示例:

Rectangle(hdc,0,0,100,100);

文章分享到这里,希望我们关于rectangle函数的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。

app开发定制公司,开发app较好的公司有哪些企业邮箱注册哪个(企业邮箱哪个好用)