📄 040109.htm
字号:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>vb study</title>
<style>
<!--
td {font-size: 9pt}
A:link {text-decoration: none; color: #0033cc;font-size: 9pt}
A:visited {text-decoration: none; color: #0066CC;font-size: 9pt}
A:active {text-decoration: none; color: #ff0000; font-size: 9pt}
A:hover {text-decoration: underline; color: #000000;font-size: 9pt}
-->
</style>
</head>
<body>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="98%">
<tr>
<td width="100%"><a href="#">你的位置</a>:<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="#">VB学习</a>--<a href="#">API函数</a></td>
</tr>
<tr>
<td width="100%">
<p align="center">设备场景类函数</td>
</tr>
<tr>
<td width="100%"><br>
获得指定窗口的显示设备描述表句柄 : GetDC函数 <br>
"显示设备描述表"也叫设备场景。声明:<br>
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long<br>
参数很简单,只要传入某窗口句柄即可。调用如Dim hDC& :hDC&= GetDC(hwnd)<br>
(它与窗体和图片框的固有hDC属性相同。有意思)。
<p>==================================================<br>
创建一个画图用的颜色刷:CreateSolidBrush函数<br>
此函数用纯色创建一个刷子,刷子就是指定颜色的画笔而画出的笔划比"画笔"粗罢了。刷子的颜色由参数crColor指定1种RGB颜色,声明:<br>
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long<br>
调用如: hBrush = CreateSolidBrush(RGB(0, 0, 255))<br>
其参数crColor:指定1种RGB颜色值。 <br>
函数返回值为新创建的这个刷子的句柄,在其他地方用该刷子来画图时,要使用此句柄来标识该刷子,较重要。<br>
------------------------------<br>
使用颜色刷函数:FillRect函数 <br>
用指定的刷子填充一个矩形,即用刷子的颜色填满整个矩形内部。声明:<br>
Public Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long<br>
结构类型RECT指明要填充的矩形区域,声明: <br>
Public Type RECT<br>
Left As Long<br>
Top As Long Left和Top为矩形区域左上角坐标 <br>
Right As Long<br>
Bottom As Long Right和Bottom为矩形区域右下角坐标<br>
End Type<br>
调用如:<br>
Dim FillArea As RECT<br>
Me.ScaleMode = 3 这句不能丢,API中以象素为单位。只在VB中才用什么缇。讨厌<br>
FillArea.Left = 0<br>
FillArea.Right = Me.ScaleWidth<br>
FillArea.Top = 0<br>
FillArea.Bottom = Me.ScaleHeight<br>
lxn = FillRect(Me.hDC, FillArea, hBrush)<br>
参数:<br>
hdc Long,要填色的设备场景句柄 <br>
lpRect RECT,确定填充区域,采用逻辑坐标(即那个设备场景窗口的客户坐标)。 <br>
hBrush Long,欲使用的刷子的句柄 <br>
注:矩形的右边和底边不会描绘<br>
---------------------------------------------<br>
删除"刷子对象"函数:DeleteObject函数<br>
当画完颜色后,要去除此刷子,用DeleteObject传入刷子的句柄即可。<br>
该函数功能:删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放 <br>
声明:<br>
Declare Function DeleteObject Lib "gdi32"(ByVal hObject As Long) As Long<br>
调用如: lxn = DeleteObject(hBrush)<br>
参数: hObject :一个GDI对象的句柄 <br>
不要删除一个已选入设备场景的画笔、刷子或位图。如删除以位图为基础的阴影(图案)刷子,位图不会由这个函数删除--只有刷子被删掉<br>
======================================================<br>
==================================<br>
FillRgn函数:用指定刷子填充指定区域<br>
前面学的FillRect是填充1个矩形区域,而用FillRgn,可填充任意指定区域句柄的区域,常常结合其他如椭圆、圆角矩形的函数返回句柄来填充不规则形状。<br>
声明:<br>
Declare Function FillRgn Lib "gdi32" Alias "FillRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long<br>
调用如:<br>
Dim hBrush As Long<br>
Dim hRgn As Long<br>
hBrush = CreateSolidBrush(vbBlue)<br>
hRgn = CreateEllipticRgn(0,0,200,100)<br>
Call FillRgn(Form1.hDC, hRgn, hBrush)<br>
Call DeleteObject(hBrush)<br>
参数:<br>
hdc Long,设备场景句柄 <br>
hRgn Long,填充的几何形状区域句柄 <br>
hBrush Long,要用的刷子的句柄 <br>
===========================================<br>
================================================<br>
CreateCompatibleDC函数:创建一个与特定设备场景一致的内存设备场景 <br>
声明:<br>
Declare Function CreateCompatibleDC Lib "gdi32"(ByVal hdc As Long) As Long <br>
调用如:<br>
hTempDC = CreateCompatibleDC(Picture1.hdc)<br>
函数返回值为新的设备场景的句柄。<br>
参数hdc--原设备场景句柄。新的设备场景将与它一致。此参数也可传入0以创建一个与屏幕一致的设备场景。<br>
注:在绘制之前,先要为该设备场景选定一个位图。不再需要时,该设备场景可用DeleteDC函数删除。删除前,其所有对象应回复初始状态<br>
---------------------------------<br>
DeleteDC函数:删除专用设备场景<br>
声明:<br>
Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long 参数很简单:hdc--将要删除的设备场景。<br>
该函数删除专用设备场景或信息场景,释放所有相关窗口资源。不要将它用于GetDC函数取回的设备场景。若有对象被选入设备场景,则在调用本函数前应将它们选出。为此,可将初始对象回选入DC,也可用SaveDC, RestoreDC函数对回复DC为其创建时的状态。注:在vb里使用,不要将它用于由vb hdc属性获取的设备场景句柄 <br>
-----------------------------------<br>
CreateCompatibleBitmap函数:创建1幅与设备有关的位图<br>
该函数创建一幅与设备有关位图,它与指定的设备场景兼容 <br>
声明:<br>
Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long <br>
调用如:<br>
nWidth = Picture1.Width \ Screen.TwipsPerPixelX<br>
nHeight = Picture1.Height \ Screen.TwipsPerPixelY<br>
hBitmap = CreateCompatibleBitmap(Picture1.hdc, nWidth, nHeight)<br>
函数返回值为位图的句柄。<br>
参数:<br>
hdc:设备场景的句柄 <br>
nWidth:位图宽度,以像素为单位 <br>
nHeight:位图高度,以像素为单位 <br>
一旦位图不再需要,要用deleteObject函数释放它所占用的资源。<br>
----------------------------------------------------<br>
SelectObject函数:选择在设备场景中选入某类型GDI对象<br>
每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式 。<br>
声明:<br>
Declare Function SelectObject Lib "gdi32"(ByVal hdc As Long, ByVal hObject As Long) As Long<br>
函数返回值为选入hdc设备场景的hObject类型的一个对象的句柄,零表示出错。如果选定的对象是一个区域(如由CreateEllipticRgn椭圆区域),结果就是下列常数之一:SIMPLEREGION, COMPLEXREGION 或 NULLREGION 对区域进行描述, GDI_ERROR 表示出错 <br>
参数:hdc--一个设备场景的句柄 <br>
hObject --一个画笔、位图、刷子、字体或区域的句柄 <br>
注:返回值通常用于获得选入DC的对象的原始值。绘图操作完成后,原始的对象通常选回设备场景。在清除一个设备场景前,务必注意恢复原始的对象。</p>
<p align="center">
<br>
< <a href="040108.htm">上一页</a>--<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="040110.htm">下一页</a>
><br>
</td>
</tr>
</table>
</center>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -