路径问题
很多程序员在打开文件、调用程序时喜欢使用绝对文件路径,结果在另一台计算机上运行时便会遇到路径不对或需要重新拷贝到该目录的问题。其实,只要使用相对路径,就完全可以避免这个问题。在Windows下,某个程序一旦运行,除非特别指定了工作目录,一般该程序文件所在的目录就是工作目录,其他目录可以用工作目录为参照系。在编程中”App.Path”即为当前工作目录。另外,用安装程序向导制作安装盘时,只要在步骤”文件小结”中添加某文件时指定”文件详细资料”的路径即可安装该文件到指定的目录下。
生成透明窗体
利用API函数可做出透明窗体。以下为一种方法:
Me.AutoRedraw=True
hBitmap=CreateCompatibleBitmap(Me.hdc,0,0)
SelectObjectMe.hdc,hBitmap
调用BitbltAPI函数
在编程中我们经常遇到需要拷贝图形的问题,一般利用API函数Bitblt或Stretchblt(后者可缩放).
DeclareFunctionBitBltLib”gdi32″Alias”BitBlt”(ByValhDestDC
AsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,
ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,
ByValySrcAsLong,ByValdwRopAsLong)AsLong
DeclareFunctionStretchBltLib”gdi32″Alias”StretchBlt”(ByVal
hdcAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,
ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,
ByValySrcAsLong,ByValnSrcWidthAsLong,ByValnSrcHeightAs
Long,ByValdwRopAsLong)AsLong
当所拷贝的图形为画图语句所创建时,有时就会出现拷贝不上去的毛病,这时不用着急,请确认在拷贝之前对所画的图形进行刷新,即调用Refresh方法.
Findwindow()函数用法
要使用此函数,先从APIVIEW中拷贝如下的FindWindow()函数的声明:
DeclareFunctionFindWindowLib”user32″Alias”FindWindowA”(ByVal
lpClassNameAsString,ByVallpWindowNameAsString)AsLong
这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。有的窗口的标题是比较容易得到的,所以应使用标题进行搜索。但有些软件的标题是不固定的,如一些MDI程序,如果打开的文件不同,窗口标题也不同,这时使用窗口类来搜索就比较方便。如果找到了满足条件的窗口,这个函数会返回该窗口的句柄,否则返回0。前面提到的VB的FindWindow()函数的声明将两个参数都定义为String类型,而在实际使用过程中,如果我们要忽略某个参数,应将该参数的定义由
AsString改为AsAny。这里的AsAny相当于C语言中的强制类型转换。例如,如果我们忽略窗口的类,应将定义修改如下:
DeclareFunctionFindWindowLib”user32″Alias”FindWindowA”(ByVal
lpClassNameAsAny,ByVallpWindowNameAsString)AsLong
然后,在调用时使用如下语句:
hwndCalc=FindWindow(0&,”abc”)
这里的0&就表示忽略类名。
防止运行多个实例
在程序开始部分添加如下代码:
IfApp.PreInstance=Truethen
End
EndIf
为应用程序创建快捷方式
一般来说,软件在安装时都会创建一个快捷方式来方便用户使用,我们也可为自己的应用程序在桌面上创建一个快捷方式。安装MicrosoftVisualBasic4.0后,将会有一个SetupKit工具,其所带的STKIT432.DLL文件中提供了一个API函数fCreateShellLink可供用户来为应用程序创建快捷方式。下来举例说明其使用方法。
在这里我们为NOTEPAD创建一个快捷方式。
1、在VB4.0中打开一个新工程文件,在FORM1上添加一个命令按钮Command1。
2、双击窗体,在GeneralDeclarations中输入下面代码:
PrivateDeclareFunctionfCreateShellLinkLib″STKIT432.DLL”″
(ByVal_lpstrFolderNameAsString,ByVallpstrLinkNameAsString,
ByVal_lpstrLinkPathAsString,ByVallpstrLinkArgsAsString)AsLong
3、双击Command1命令按钮,写如下代码:
SubCommand1_Click()
DimlReturnAsLong
lReturn=fCreateShellLink(“..。.\Desktop”,_”快捷方式Notepad”,”c:\win95\notepad.exe”,””)
lReturn=fCreateShellLink(“”,”快捷方式Notepad”,_”c:\\win95\notepad.exe”,””)
lReturn=fCreateShellLink(“\startup”,”快捷方式Notepad”,_”c:\win95\notepad.exe”,””)
EndSub
4、按F5运行,单击命令按钮command1,如果没有输入错误的话,桌面上就会出现NOTEPAD的快捷方式。运行环境:VB4.0(32),中文WINDOWS95。->