📄 vbtips10.htm
字号:
<p id="content"><font face="宋体">If ReturnCode =
ERROR_SUCCESS Then</font></p>
<p id="content"><font face="宋体">For i = 0 To
lpcConnections - 1</font></p>
<p id="content"><font face="宋体">If
Trim(ByteToString(lpRasConn(i).szEntryName)) _</font></p>
<p id="content"><font face="宋体">= Trim(gstrISPName)
Then</font></p>
<p id="content"><font face="宋体">hRasConn =
lpRasConn(i).hRasConn</font></p>
<p id="content"><font face="宋体">ReturnCode =
RasHangUp(ByVal hRasConn)</font></p>
<p id="content"><font face="宋体">End If</font></p>
<p id="content"><font face="宋体">Next i</font></p>
<p id="content"><font face="宋体">End If</font></p>
<p id="content"><font face="宋体">End Sub</font></p>
<p id="content"><font face="宋体">Public Function
ByteToString(bytString() As Byte) As String</font></p>
<p id="content"><font face="宋体">Dim i As Integer</font></p>
<p id="content"><font face="宋体">ByteToString =
""</font></p>
<p id="content"><font face="宋体">i = 0</font></p>
<p id="content"><font face="宋体">While bytString(i) =
0&</font></p>
<p id="content"><font face="宋体">ByteToString =
ByteToString & Chr(bytString(i))</font></p>
<p id="content"><font face="宋体">i = i + 1</font></p>
<p id="content"><font face="宋体">Wend</font></p>
<p id="content"><font face="宋体">End Function</font></p>
<p id="content"><font face="宋体">调用断开过程:</font></p>
<p id="content"><font face="宋体">Call HangUp<br>
</font><a href="#Return">返回</a></p>
<p id="content"><a
name="怎样用VB得知系统当前是否处于internet链结状态?"><font
face="宋体"><b>怎样用VB得知系统当前是否处于internet链结状态?</b></font></a></p>
<p id="content"><font face="宋体">对于那些必须和internet链结才能工作的程序来说,知道当前计算机是否处于链结状态是非常有意义的。当Windows系统处于链结状态时,它会在注册表里改动一个键值,下面的例子告诉你如何读取这个键值,并得知系统是否与internet相连。</font></p>
<p id="content"><font face="宋体">声明以下函数变量常量:</font></p>
<p id="content"><font face="宋体">Public Const
ERROR_SUCCESS = 0&</font></p>
<p id="content"><font face="宋体">Public Const APINULL
= 0&</font></p>
<p id="content"><font face="宋体">Public Const
HKEY_LOCAL_MACHINE = &H80000002</font></p>
<p id="content"><font face="宋体">Public ReturnCode As
Long</font></p>
<p id="content"><font face="宋体">Declare Function
RegCloseKey Lib "advapi32.dll" (ByVal _hKey As
Long) As LongDeclare Function RegOpenKey Lib
"advapi32.dll" Alias _"RegOpenKeyA"
(ByVal hKey As Long, ByVal lpSubKey As _</font></p>
<p id="content"><font face="宋体">String, phkResult As
Long) As Long</font></p>
<p id="content"><font face="宋体">Declare Function
RegQueryValueEx Lib "advapi32.dll" Alias _</font></p>
<p id="content"><font face="宋体">"RegQueryValueExA"
(ByVal hKey As Long, ByVal lpValueName _</font></p>
<p id="content"><font face="宋体">As String, ByVal
lpReserved As Long, lpType As Long, _</font></p>
<p id="content"><font face="宋体">lpData As Any,
lpcbData As Long) As Long</font></p>
<p id="content"><font face="宋体">代码:</font></p>
<p id="content"><font face="宋体">Public Function
ActiveConnection() As Boolean</font></p>
<p id="content"><font face="宋体">Dim hKey As Long</font></p>
<p id="content"><font face="宋体">Dim lpSubKey As
String</font></p>
<p id="content"><font face="宋体">Dim phkResult As Long</font></p>
<p id="content"><font face="宋体">Dim lpValueName As
String</font></p>
<p id="content"><font face="宋体">Dim lpReserved As
Long</font></p>
<p id="content"><font face="宋体">Dim lpType As Long</font></p>
<p id="content"><font face="宋体">Dim lpData As Long</font></p>
<p id="content"><font face="宋体">Dim lpcbData As Long</font></p>
<p id="content"><font face="宋体">ActiveConnection =
False</font></p>
<p id="content"><font face="宋体">lpSubKey =
"System\CurrentControlSet\Services\RemoteAccess"</font></p>
<p id="content"><font face="宋体">ReturnCode =
RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, _</font></p>
<p id="content"><font face="宋体">phkResult)</font></p>
<p id="content"><font face="宋体">If ReturnCode =
ERROR_SUCCESS Then</font></p>
<p id="content"><font face="宋体">hKey = phkResult</font></p>
<p id="content"><font face="宋体">lpValueName =
"Remote Connection"</font></p>
<p id="content"><font face="宋体">lpReserved = APINULL</font></p>
<p id="content"><font face="宋体">lpType = APINULL</font></p>
<p id="content"><font face="宋体">lpData = APINULL</font></p>
<p id="content"><font face="宋体">lpcbData = APINULL</font></p>
<p id="content"><font face="宋体">ReturnCode =
RegQueryValueEx(hKey, lpValueName, _</font></p>
<p id="content"><font face="宋体">lpReserved, lpType,
ByVal lpData, lpcbData)</font></p>
<p id="content"><font face="宋体">lpcbData =
Len(lpData)</font></p>
<p id="content"><font face="宋体">ReturnCode =
RegQueryValueEx(hKey, lpValueName, _</font></p>
<p id="content"><font face="宋体">lpReserved, lpType,
lpData, lpcbData)</font></p>
<p id="content"><font face="宋体">If ReturnCode =
ERROR_SUCCESS Then</font></p>
<p id="content"><font face="宋体">If lpData = 0 Then</font></p>
<p id="content"><font face="宋体">ActiveConnection =
False</font></p>
<p id="content"><font face="宋体">Else</font></p>
<p id="content"><font face="宋体">ActiveConnection =
True</font></p>
<p id="content"><font face="宋体">End If</font></p>
<p id="content"><font face="宋体">End If</font></p>
<p id="content"><font face="宋体">RegCloseKey (hKey)</font></p>
<p id="content"><font face="宋体">End If</font></p>
<p id="content"><font face="宋体">End Function </font></p>
<p id="content"><font face="宋体">下面是使用以上代码的例子:</font></p>
<p id="content"><font face="宋体">If ActiveConnection =
True then</font></p>
<p id="content"><font face="宋体">Call MsgBox("现在处于链结状态。",vbInformation)</font></p>
<p id="content"><font face="宋体">Else</font></p>
<p id="content"><font face="宋体">Call MsgBox("现在处于断开状态。",
vbInformation)</font></p>
<p id="content"><font face="宋体">End If<br>
</font><a href="#Return">返回</a></p>
<p id="content"><a name="放置透明的图片"><strong></strong></a><strong>放置“透明”的图片
</strong><br>
在 VB
中,如果你试着把一只有鸟的图片放到背景的一棵树上,你就会发现树会被鸟遮住一个矩形的区域(即鸟的图片矩形)。我们可以通过以下方法使图片上非鸟的其它部分变透明:
<br>
我们可以利用一个 WinAPI 函数 BitBlt
对图形进行一系列的位操作来达到此目的。
<br>
函数声明: <br>
Declare Function BitBlt Lib "gdi32" Alias
"BitBlt" (ByVal hDestDC As Long, ByVal x As
Long, ByVal y As Long, ByVal nWidth As Long, ByVal
nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As
Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long <br>
参数解释: <br>
目标环境:hDestDC——目标设备环境;x——左上角;y——顶端;nWidth——宽;nHeight——高
<br>
源环境:hSrcDC——源设备环境;xSrc——源左上角;ySrc——源顶端;
<br>
dwRop——位处理操作,如 vbSrcAnd;vbSrcAnd;vbSrcCopy;vbSrcErase;vbSrcInvert
等 <br>
(目标环境或源环境只能是 Picture, Form 或
Printer 对象。各单位为象素。) <br>
进行处理之前,我们需要对鸟的图片进行处理:先复制一份相同的图形,将其应该透明之处(鸟的背景)设置为黑色(设此图为sPic),再将另一图做以下处理:要复制的地方(鸟)设置为黑色,其余地方设置(鸟的背景)为白色(设此图为Mask)。
<br>
设树的图形为名dPic。 <br>
最后,请加入以下代码: <br>
R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,Mask.hdc,0,0,vbScrCopy)
<br>
R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,sPic.hdc,0,0,vbScrInvert)
<br>
后记: <br>
1、VB 中的 PaintPicture
方法提供类似功能,但速度不及此方法; <br>
2、在此方法上稍微加入一些代码,就不难实现动画的显示。
<br>
3、VB 例子中的 CallDlls 就使用此方法。 <br>
<a href="#Return">返回</a></p>
<p><a name="设置打印边距"><strong></strong></a><strong>设置打印页边距
</strong><br>
<font face="宋体">你可以使用打印机的</font>Scale属性来设置打印页边距。下面的代码设置左边距为1/2英寸。右边距为3/4英寸。乘以<font
face="Times New Roman">1440</font>是将英尺转换成<font
face="Times New Roman">twips</font>。<br>
Printer.ScaleLeft = -0.75 * 1440 <br>
Printer.ScaleTop = -0.5 * 1440 <br>
Printer.CurrentX = 0 <br>
Printer.CurrentY = 0 <br>
<a href="#Return">返回</a></p>
</td>
</tr>
</table>
</center></div>
<hr>
<div align="center"><center>
<table border="0" cellspacing="1" width="88%">
<tr>
<td width="80%"><p align="left"><a
href="vbtips.htm#Return">[1]</a> <a href="vbtips1.htm">[2]</a>
<a href="vbtips2.htm">[3]</a> <a href="vbtips3.htm">[4]</a>
<a href="vbtips4.htm">[5]</a> <a href="vbtips5.htm">[6]</a>
<a href="vbtips7.htm">[7]</a> <a href="vbtips7.htm">[8]</a>
<a href="vbtips9.htm">[9]</a> [10]</p>
</td>
<td><p align="right"><font size="2">第十页(共十页)</font></p>
</td>
</tr>
</table>
</center></div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -