VB编程技巧三则

1、VB中实现动态移动控件

窗体中的控件如按钮、文本框等一般在运行时位 置是固定不变的,但为了能给用户更方便的功能,我们可以做到在运行时动态移动控件的 位置,比如我们可以允许用户随便将按钮放到自己喜欢的位置,而并非界面中固定的位置。 其实这个功能实现起来是很容易的,只需要使用API函数SendMessage传递控件移动的消息 即可。

下面是一个例子,当用户单击按钮后可以移动按 钮的位置。

在窗体的总体声明部分声明SendMessage函数及 用到的两个常量:

Private Declare Function SendMessage
Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As
Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const WM_SYSCOMMAND = &H112
Const SC_MOVE = &HF012

在窗体中添加一命令按钮Command1,双击写代码 如下:

Private Sub Command1_Click()
Dim retn%
retn = SendMessage(Command1.hwnd,
WM_SYSCOMMAND, SC_MOVE, 0)
End Sub

在窗体中添加命令按钮Command2,双击写如下代 码:

Private Sub Command2_Click()
unload me
End Sub

运行此程序,单击命令按钮1,然后移动鼠标可以 发现按钮的边框跟随鼠标移动,在新位置处单击鼠标就可以按钮移动过去了,单击按钮2可 结束程序。

2、保持窗口的比例不变。

WINDOWS下的窗口一般都可以通过鼠标拖动来扩 大,有些时候我们需要控制窗口的比例不变,以防窗口比例失调时造成界面的不协调。要做 到这一点,可以利用API函数CallWindwosProc,当得到用户调整窗口的消息时,判断X或Y方 向上的比例是否和原来的比例一样,如果不一样,则调整为一样。下面是一个例子。

在窗体中加一个命令按钮Command1,双击写如下 代码:

Private Sub Command1_Click()
Unload Me
End Sub

双击窗体写如下代码:

Private Sub Form_Load()
OldWindowProc = SetWindowLong( hwnd, GWL_WNDPROC, _
AddressOf NewWindowProc)
End Sub

时间: 2024-09-14 16:23:17

VB编程技巧三则的相关文章

VB编程的8个小技巧

编程|技巧 1."&"替换"+"在很多人的编程语言中,用"+"来连接字符串,这样容易导致歧义.良好的习惯是用"&"来连接字符串. 不正确: Dim sMessage As StringsMessage = "1" + "2" 正确: Dim sMessage As StringsMessage = "1" & "2" 注意:

071_《Delphi7编程技巧与实例精解》

<Delphi7编程技巧与实例精解> Delphi 教程 系列书籍 (071) <Delphi7编程技巧与实例精解> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作者: 张海卿 张占军 丛书名: 其他 出版社:国防工业出版社 ISBN:7118030163 上架时间:2003-4-15 出版日期:2003 年1月 开本:16开 页码:365 版次:1-1 内容简介 本书汇编了Delphi中比较经典的60个实便,包括8大部分,即基础知识.图形国像

JavaApplet编程技巧

编程|技巧 1. Java Applet 概 述 Java Applet 程 序 分 为 两 类:Java 小 程 序(Applet) 和Java 应 用 程 序(Application), 这 两 类 程 序 是 有 区 别 的.Java Applet 嵌 入 在WWW 的 页 面, 作 为 页 面 的 组 成 部 分 被 下 载, 并 能 运 行 在 实 现Java 虚 机 器(JVM) 的Web 浏 览 器 中.Java 的 安 全 机 制 可 以 防 止 小 程 序 存 取 本 地 文

PHP编程技巧:看实例学正则表达式

编程|技巧|正则     首先,让我们看看两个特别的字符:'^' 和 '$' 他们是分别用来匹配字符串的开始和结束,一下分别举例说明: "^The": 匹配以 "The"开头的字符串; "of despair$": 匹配以 "of despair" 结尾的字符串; "^abc$": 匹配以abc开头和以abc结尾的字符串,实际上是只有abc与之匹配: "notice": 匹配包含noti

VB编程中钩子的实现及应用

编程 前言 Windows系统中钩子具有相当强大的功能,通过这种技术可以对几乎所有的Windows 系统中的消息进行拦截.监视.处理.这种技术可以广泛应用于各种软件,尤其是需要有监控.自动记录等对系统进行监测功能的软件.本文针对这个专题进行了探讨,希望可以为读者朋友们起到抛砖引玉的作用. 一.钩子的机制及类型 Windows的应用程序都是基于消息驱动的,应用程序的操作都依赖于它所得到的消息的类型及内容.钩子与Dos中断截获处理机制有类似之处.钩子(Hook)是Windows消息处理机制的一个平台

Linux GCC 64位编程技巧

                                 linux GCC 64位编程技巧 64位系统的优势? 既然要采用64位系统,首先要知道64位系统的优势所在.对于技术人员来说,完全没有必要去看那些厂家拿出的厚厚的说明书.或者某个研究机构抛出的一堆的数字,64位系统的优势总结起来很简单:内存大.速度快! 内存大 与32位系统相比,64位系统的地址空间大大增大,达到了18PB,18PB究竟是多大呢?说出来有点吓人:4G内存的40亿倍!这么大的空间,不要说内存了,就是整个磁盘的数据都

vb编程 我使用的TCPListener和异步方法BeginAcceptTCPClient多个客户端 连接TCP服务器

问题描述 vb编程 我使用的TCPListener和异步方法BeginAcceptTCPClient多个客户端 连接TCP服务器 Public Sub TCPlisten() try Dim listener As New TcpListener(IPAddress.Any, Local_Port) listener.Start() listener.BeginAcceptTcpClient(New AsyncCallback(AddressOf AcceptClient), listener)

VB编程 及EXCEL 的VBA编程,用什么把一段代码括起来啊(就是用什么东西来实现C语言中的{}功能啊)?

问题描述 VB编程及EXCEL的VBA编程,用什么把一段代码括起来啊(就是用什么东西来实现C语言中的{}功能啊)? 解决方案 解决方案二:不是有begin和end吗解决方案三:region?C的{}有很多啊,只能你VB书都没看过if...endif-------------if{}for...endfor---------for{}解决方案四:for..next.............我草解决方案五:学c的时候用按键精灵的时候我也愣了一阵子...很多是用end,if之后用endif,while

介绍Python中的一些高级编程技巧_python

 正文: 本文展示一些高级的Python设计结构和它们的使用方法.在日常工作中,你可以根据需要选择合适的数据结构,例如对快速查找性的要求.对数据一致性的要求或是对索引的要求等,同时也可以将各种数据结构合适地结合在一起,从而生成具有逻辑性并易于理解的数据模型.Python的数据结构从句法上来看非常直观,并且提供了大量的可选操作.这篇指南尝试将大部分常用的数据结构知识放到一起,并且提供对其最佳用法的探讨.推导式(Comprehensions) 如果你已经使用了很长时间的Python,那么你至少应该听