VB开发应用程序答疑_第1页
VB开发应用程序答疑_第2页
VB开发应用程序答疑_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    VB以其易于学习、易于开发而深受广大开发人员的喜爱,但是在实际开发时,我们也会遇到很多问题,笔者总结了一些开发中常见的问题,给出了通用的解决方法,希望对VB开发人员有所帮助。 问:在VB应用程序中,如何实现窗体的简易移动? 答:如果你的窗体不需要标题栏,又希望能移动该窗体,像WinAmp一样简易移动,我们可以利用以下代码实现: Declare Function ReleaseCapture Lib "user32" () As LongDeclare Function SendMessage Lib "user32&

2、quot; Alias "SendMessageA"(_ByVal hwnd As Long, ByVal wMsg As Long,_ByVal wParam As Long, lParam As Any) As LongPublic Const HTCAPTION = 2Public Const WM_NCLBUTTONDOWN = &&&&HA1  下面是将功能加入窗体的MouseDown事件中的代码,你也可将其加入其它控件的事件中: Private Sub Form_MouseDown(Button As Inte

3、ger, Shift As Integer, X As Single, Y As Single)ReleaseCaptureSendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&&&&  利用以上代码,我们就可实现窗体的简易移动。 问:如何在桌面上画图标? 答:下面一段程序利用了API函数在屏幕上实现画图标功能(注:p是图标的句柄,可以由ExtractIcon取得)。 deskhwnd = GetNextWindow(hwnd, GW_HWNDLAST)'取最下面一个窗口deskdc = G

4、etWindowDC(deskhwnd)'取窗口的情景设备For i=0 To Screen.Width/32/15'将屏幕坐标单位换算成“Pixel”,并计算可画的图标数For j=0 To Screen.Height/32/15DrawIcon deskdc, 32i, 32j, p'在桌面上画图Next jNext i 用函数GetNextWindow取得其句柄,用函数GetWindowDC取出它的虚拟设备。需要注意的是,一旦窗口被覆盖,图标就会消失。 问:在VB应用程序中,如何取消窗体右上角的关闭功能? 答:如果你不想别人使用程序时直接用右上角的关闭功能来关闭程

5、序,可用以下代码来实现该功能。 在Form_Unload事件中加入以下代码: Private Sub Form_Unload(Cancel As Integer)Cancel=TrueEnd Sub 如果你想在关闭程序时提示是否关闭,可在Form_Unload事件中加入一个判断语句:Private Sub Form_Unload(Cancel As Integer)Cancel=TrueCase Select msgbox "您真的想关闭吗?" ,VbOkCancelCase VbOkCancel=FalseCase ElseCancel=TrueEnd SelectEnd

6、 Sub  问:如何让VB应用程序中的连接具有超级链接效果? 答:我们以一个网址链接为例,讲解实现的方法。 首先我们新建一表单,在表单中加入一标签,Caption属性为 在标签的MouseMove事件中加入如下代码: Label1.ForeColor=&&&&HFF  在表单的MouseMove事件中加入如下代码: Label1.ForeColor=&&&&HFF0000  在标签的Click事件中加入如下代码: Dim a As Stringa=Shell("

7、Explorer.exe 问:如何读取外部图标? 答:下面的一段程序就显示了如何读取程序中的图标,其中Picture1是一个图像框,dlgOpen是一个标准对话框,Command1是一个按钮;ExtractIcon函数有三个参数,第一个参数指定调用的应用程序,一般都用App.hInstance;第二个参数指定图标文件,可以是DLL、EXE和ICO;第三个参数的不同就决定了其返回值的不同,如果代入-1,就返回文件中包含的图标数,代入0则返回第一个图标的句柄,其余依此类推。 Private Sub Command1_Click()Static total As Long,p(50) As Long

8、,i As IntegerdlgOpen.Filter = "图标|.Exe;.Ico;.Dll"dlgOpen.ShowOpenIf Dir(dlgOpen.filename)"" ThenIf ExtractIcon(App.hInstance, dlgOpen.filename, -1) = 0 Then '如果没有图标MsgBox "No Icon!"Elsetotal = ExtractIcon(App.hInstance, dlgOpen.filename, -1)'取得总图标数For i = 0 To total - 1p(i) = ExtractIcon(App.hInstance, dlgOpen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论