首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 软件教学-> 其他工具
vb使用编程技巧三则_visualbasic教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
----1、VB中实现动态移动控件

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

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

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

PrivateDeclareFunctionSendMessage
Lib"user32"Alias_
"SendMessageA"(ByValhwndAs
Long,ByValwMsgAsLong,_
ByValwParamAsLong,lParamAsAny)AsLong
ConstWM_SYSCOMMAND=&H112
ConstSC_MOVE=&HF012

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

PrivateSubCommand1_Click()
Dimretn
retn=SendMessage(Command1.hwnd,
WM_SYSCOMMAND,SC_MOVE,0)
EndSub

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

PrivateSubCommand2_Click()
unloadme
EndSub

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

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

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

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

PrivateSubCommand1_Click()
UnloadMe
EndSub

----双击窗体写如下代码:

PrivateSubForm_Load()
OldWindowProc=SetWindowLong(hwnd,GWL_WNDPROC,AddressOfNewWindowProc)
EndSub

----将下面的代码放入一个模块中:

OptionExplicit
PublicOldWindowProcAsLon
声明API函数如下:
DeclareFunctionCallWindowProcLib
"user32"Alias"CallWindowProcA"_
(ByVallpPrevWndFuncAsLong,ByVal
hwndAsLong,ByValmsgAsLong,_
ByValwParamAsLong,lParamAs
WINDOWPOS)AsLong
DeclareFunctionSetWindowLongLib
"user32"Alias"SetWindowLongA"_
(ByValhwndAsLong,ByValnIndex
AsLong,ByValdwNewLongAsLong)AsLong

PublicConstGWL_WNDPROC=-4
定义一个窗口位置数据类型
TypeWINDOWPOS
hwndAsLong
hWndInsertAfterAsLong
xAsLong
yAsLong
cxAsLong
cyAsLong
flagsAsLong
EndType
PublicConstWM_WINDOWPOSCHANGING=&H46
PublicConstWM_WINDOWPOSCHANGED=&H47
处理窗口变化的函数
PublicFunctionNewWindowProc
(ByValhwndAsLong,ByValmsgAsLong,_
ByValwParamAsLong,lParamAsWINDOWPOS)AsLong
Staticdone_beforeAsBoolean
StaticaspectAsSingle
Dimnew_aspectAsSingle

Ifmsg=WM_WINDOWPOSCHANGINGThen
IflParam.cy>0Then
保存原来的比例
IfNotdone_beforeThen
aspect=lParam.cx/lParam.cy
done_before=True
EndIf

new_aspect=lParam.cx/lParam.cy
Ifnew_aspect>aspectThen
lParam.cy=lParam.cx/aspect
Else
lParam.cx=aspect*lParam.cy
EndIf
EndIf
EndIf

NewWindowProc=CallWindowProc
(OldWindowProc,hwnd,msg,wParam,lParam)

EndFunction

----运行此程序,当用鼠标拉窗体的边界扩大窗口时,将会发现另一边也相应地扩大,整个窗口的比例不变,单击command1结束程序。

----3、使用系统的“关于”对话框。

----也许你在软件中需要一个“关于”对话框,如果要求不高的话,可以不必再用一个窗体做“关于”对话框,可利用系统的对话框,虽然其中含有微软的一些信息,但你还是可以添加自己的某些信息,系统提供的“关于”对话框还有内存、资源等有关信息,你不需再为这些信息写任何代码。要使用系统的“关于”对话框,只需声明API函数ShellAbout,然后直接调用即可,例如:

声明API函数
PrivateDeclareFunction
ShellAboutLib"shell32.dll"_
Alias"ShellAbout"(ByValhwnd
AsLong,ByValszAppAsString,_
ByValszOtherStuffAsString,
ByValhIconAsLong)AsLong

在需要的地方使用它:
PrivateSubABOUTCd_Click()
x=ShellAbout(Form1.hwnd,"VB编程乐园网站指南","博士电脑软件工作室",Form1.Icon)
EndSub->


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·用javascript调用webservice(webservice behavior)-ASP教程,ASP应用
·Java中对文件的操作-JSP教程,Java技巧及代码
·VB.net进阶:VB.net下的Sniffer-.NET教程,VB.Net语言
·如何利用VB.NET修改系统时间-.NET教程,VB.Net语言
·电源技术与电子变压器
·解析几种有效开关电源电磁干扰抑制
·教你完全卸载智能abc输入法
·电源系统中多个子系统之间电磁兼容
·ASP.net 2.0 自定义控件的开发之数据分页 第一章-.NET教程,Asp.Net开发
·VS2005新控件之GridView 使用高级技巧系列[二][视频]-.NET教程,评论及其它
最新文章
·3000ip以下网站该如何赚钱_网赚技巧
·谈谈我的下载站日ip5000 月收入3000的经验_站长心得
·photoshop绘制逼真的自然背景:山间瀑布_photoshop教程
·删掉系统文件 让windows vista少占用我们的硬盘_windows vista
·突出网页内重要内容保证adsense匹配准确_网赚技巧
·借台电脑办网站—访深圳外来工站长姚永卫_站长访谈
·创建优秀网站的6个好习惯_站长心得
·做一个网站 营造氛围有多重要?_站长心得
·如何让网民爱上你的网站?(3)_站长心得
·专家支招域名安全“三原则”有效规避域名掠夺_站长心得
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭