| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

VB技术

ASP技术
PHP技术
JSP技术
VB技术
.NET技术

本类阅读TOP10

·VB到底为我们做了什么?
·利用shell编程实现DOS风格的Linux命令行
·屏保程序模板化完整源代码
·用VB6实现中英文文本的私钥加密
·VB解决Unicode文本转换的问题
·用VB编写网络监控软件
·一组VB实用小程序
·新手必学:windows网络编程经典入门
·用VB编写定时关闭计算机的程序
·用VB制作屏幕保护程序

站内搜索

Visual Basic开发应用程序答疑

  VB以其易于学习、易于开发而深受广大开发人员的喜爱,但是在实际开发时,我们也会遇到很多问题,笔者总结了一些开发中常见的问题,给出了通用的解决方法,希望对VB开发人员有所帮助。

  问:在VB应用程序中,如何实现窗体的简易移动?

  答:如果你的窗体不需要标题栏,又希望能移动该窗体,像WinAmp一样简易移动,我们可以利用以下代码实现:

  Declare Function ReleaseCapture Lib "user32" () As Long

  Declare Function SendMessage Lib "user32" Alias "SendMessageA"(_ByVal hwnd As Long, ByVal wMsg As Long,_ByVal wParam As Long, lParam As Any) As Long

  Public Const HTCAPTION = 2

  Public Const WM_NCLBUTTONDOWN = &&&&HA1

  下面是将功能加入窗体的MouseDown事件中的代码,你也可将其加入其它控件的事件中:

  Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

  ReleaseCapture

  SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&&&&

  利用以上代码,我们就可实现窗体的简易移动。

  问:如何在桌面上画图标?

  答:下面一段程序利用了API函数在屏幕上实现画图标功能(注:p是图标的句柄,可以由ExtractIcon取得)。

  deskhwnd = GetNextWindow(hwnd, GW_HWNDLAST)

  '取最下面一个窗口

  deskdc = GetWindowDC(deskhwnd)

  '取窗口的情景设备

  For i=0 To Screen.Width/32/15

  '将屏幕坐标单位换算成“Pixel”,并计算可画的图标数

  For j=0 To Screen.Height/32/15

  DrawIcon deskdc, 32i, 32j, p

  '在桌面上画图

  Next j

  Next i

  用函数GetNextWindow取得其句柄,用函数GetWindowDC取出它的虚拟设备。需要注意的是,一旦窗口被覆盖,图标就会消失。

  问:在VB应用程序中,如何取消窗体右上角的关闭功能?

  答:如果你不想别人使用程序时直接用右上角的关闭功能来关闭程序,可用以下代码来实现该功能。

  在Form_Unload事件中加入以下代码:

  Private Sub Form_Unload(Cancel As Integer)

  Cancel=True

  End Sub

  如果你想在关闭程序时提示是否关闭,可在Form_Unload事件中加入一个判断语句:

  Private Sub Form_Unload(Cancel As Integer)

  Cancel=True

  Case Select msgbox "您真的想关闭吗?" ,VbOkCancel

  Case VbOk

  Cancel=False

  Case Else

  Cancel=True

  End Select

  End Sub

  问:如何让VB应用程序中的连接具有超级链接效果?

  答:我们以一个网址链接为例,讲解实现的方法。

  首先我们新建一表单,在表单中加入一标签,Caption属性为http://ccidnet.com/,MouseIcon值为操作系统下Curors目录里的Hand.ico文件,MousePointer值为99。

  在标签的MouseMove事件中加入如下代码:

  Label1.ForeColor=&&&&HFF

  在表单的MouseMove事件中加入如下代码:

  Label1.ForeColor=&&&&HFF0000

  在标签的Click事件中加入如下代码:

  Dim a As String

  a=Shell("Explorer.exe ccidnet.com/",3)

  问:如何读取外部图标?

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

  Private Sub Command1_Click()

  Static total As Long,p(50) As Long,i As Integer

  dlgOpen.Filter = "图标|.Exe;

  .Ico;.Dll"

  dlgOpen.ShowOpen

  If Dir(dlgOpen.filename)<>"" Then

  If ExtractIcon(App.hInstance, dlgOpen.filename, -1) = 0 Then '如果没有图标

  MsgBox "No Icon!"

  Else

  total = ExtractIcon(App.hInstance, dlgOpen.filename, -1)

  '取得总图标数

  For i = 0 To total - 1

  p(i) = ExtractIcon(App.hInstance, dlgOpen.filename, i) '读取每个图标

  Next i

  For i = 0 To total - 1 '依次显示每个图标

  DrawIcon Picture1.hdc, 34i, 0, p(i)

  Next i

  End If

  End If

  End Sub

  文/阙锋




相关文章
  • 微软在Silverlight上的华丽转身
  • 微软收网的那天会怎样
  • 微软IIS工具Microsoft Web Platform
  • 微软五大Web服务
  • Hyper-V和VMware的区别
  • 从MSN中断服务谈国家安全
  • 微软推全球搜索品牌Bing中文名定为必应
  • 微软今晚正式发布IE8浏览器,包括简体中文版
  • 浅谈企业ERP项目实施过程中的几个误区
  • 大数据量下快速获取 SQL Server 数据库表记录数的方法
  • 三种数据库利用SQL语句进行高效果分页
  • 使用SQL Server 2000索引视图提高性能
  • 如何避免ASP的SQL的执行效率低
  • 关于SQL Server的若干注意事项
  • SQL Server的Inner Join及Outer Join
  • SQL Server存储过程编程经验技巧
  • 最大骗局?揭露2G MSN邮箱真相
  • 2003年微软10大险招
  • 微软将于12月31日停止对Win95的技术支持
  • 相关软件

  • 使用微软本地化工具包创建一个多语言支持  
  • 微软用于Microsoft Access  
  • 微软SQL数据库支援控件  
  • 微软公司开发的文本文件拼写检查软件  
  • 利用微软的语音引擎使你的程序会朗读  
  • 微软的扫雷精简版  
  • 利用微软的语音引擎使你的程序会朗读  
  • 一定要用微软的数据引擎吗?  
  • 输入用户名和序列号,你也可像微软那样  

  • 下载首页关于我们广告服务联系方式常见问题隐私声明法律条款本站声明下载帮助发布软件站点地图谷歌卫星地图