• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Windows Api在VB中的妙用

发布: 2007-6-21 21:57 | 作者: --  | 来源: yesky  | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

下一页 1 2 

   
  Windows API作为一套功能强大的应用程序接口,使VB可以实现对Windows底层的控制,完成VB不具有的功能。下面介绍几种使用API函数的方法。



  一、制作特殊窗口

  1.各种形状的窗口(仅给出了函数名,具体定义可以查阅API Viewer)

  1)CreateEllipticRgn 建立一个椭圆形的区域;

  2)CreateRoundRectRgn 建立一个圆角矩形的区域;

  3)CreatePolygonRgn 建立一个多边形区域;

  4)CreatePolyPolygonRgn建立多个可重叠的多边形区域;

  5)CreateRectRgn 建立一个矩形区域;

  6)CombineRg连接两个区域,通过代入不同的参数可以实现多种合并方式;

  7)SetWindowRgn 设定窗口的范围,使用前边创建的区域;

  8)FrameRgn 在指定区域画上边框。

  下边的程序就是建立一个形如“棒槌”的窗口:

Private Sub Form1_Load()
 Dim p, q As Long
 p = CreateEllipticRgn(0, 0, 200, 200)
 ′通过制定左上角和右下角的坐标建立一个圆
 q = CreateRoundRectRgn(40, 120, 160, 400, 20, 20)
 ′通过制定左上角和右下角的坐标以及圆角的宽度建立一个圆角矩形
 CombineRgn p, q, p, RGN_OR ′联合两个区域,使用或(就是取并集)运算
 SetWindowRgn hWnd, p, True ′设置窗口区域
 Me.Refresh ′刷新窗口
End Sub

  2.浮动窗口

  Delphi中实现浮动窗口非常容易,只要在属性栏中设置就可以。用VB实现就只有借助于API函数:
SetWindowPos hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE+SWP_SHOWWINDOW就可以了。其中hWnd是窗口的句柄,HWND_TOPMOST指定了窗口的位置—总是在最上边。如果你要取消这个属性,只要把TOPMOST改成NOTOPMOST就可以了。后面4个参数指定了窗口的位置和大小,和VB提供的MOVE方法一样。不过最后一个参数如果指定了SWP_NOMOVE(不改变位置)和 SWP_NOSIZE(不改变大小),那么这四个参数就会被忽略。

  3.透明窗口

  去年的《电脑报》上提供了一个制作透明窗口的办法,这里再介绍另一种方法:

Private Sub Form1_Load()
 Dim p As Long
 p = GetWindowLong(hWnd,GWLEXSTYLE) ′取得当前窗口属性
 SetWindowLong hWnd, GWL_EXSTYLE,p + WS_EX_TRANSPARENT
 ′加上一个透明属性
 Me.Refresh
End Sub

  GetWindowLong 和 SetWindowLong 配合使用还可以更改窗口的不少属性,有兴趣的读者不妨一试。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网