转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
如何在VB中制作不回显的文本框         ★★★★

如何在VB中制作不回显的文本框

作者:闵涛 文章来源:闵涛的学习笔记 点击数:666 更新时间:2009/4/23 14:57:42
 在应用程序中,有时需要用户录入一些不宜在屏幕上直接显示的内容,如用户口令或机密数据。我们已熟知,在Foxbase/Foxpro中这一功能可以用SETCONSOLEOFF命令关闭向屏幕的回显来实现。那么,在VisualBasicforWin-dows中如何做到这一点呢?

  一个容易想到的方法是利用文本框的Key-Press事件,但为了处理用户对文字的编辑(如删除、插入),则还要再用其它变量存放真正输入的内容,而且必须书写大量复杂的控制程序。实践证明,这种方法比较繁琐,不便使用。

  笔者在用VB编程时发现,Windows文本框可以响应许多消息,那么,可不可以利用WindowsAPI函数sendmessage将控制特性的消息传递给文本框呢?如果可行,则可以将使目标以密码形式输出的消息传递给文本框,不就可以制作出不回显文字的文本框了吗?

  答案是肯定的。笔者使用以上思路实现了这一功能。以下是程序中用到的几个API函数和有关的消息:


getfocus():返回获得输入焦点的目标句柄;
getwindowlong():取得指定目标的信息,第二个参数为GWL_STYLE时将返回目标的“风格”属性;
setwindowlong():把新的属性值赋予指定的目标。该函数的三个参数分别为目标的句柄、属性类型、新属性值;
sendmessage():向目标发送一条消息。该函数的四个参数分别为接收消息的目标句柄、消息、消息参数一、消息参数二;
GWL_STYLE(程序中简写为STYLE):其值为-16,表示目标的“风格”;
ES_PASSWORD(程序中简写为PASS)简写为PASS):其值为&H20,表示目标具有录入口令的属性,即在录入时不回显;
EM_SETPASSWORDCHAR(程序中简写为PASSCHAR):其值为&H41C,表示传递密码特性。用sendmessage向目标传递此消息成功,则目标会将自身的输出信息以指定的密码形式给出。


  以下程序,通过sendmessage函数修改文本框Text1的“风格”属性,使其以指定的密码形式输出———不管用户录入的是什么内容,都以相同数量的“*”来显示。用户可以通过单点“Command1”按钮来显示Text1.Text的真正内容。

DeclareFunctiongetfocusLib“user”()AsInteger
DeclareFunctiongetwindowlongLib“user”(ByValhandAsInteger,ByValind
ex AsInte-ger)AsLong
DeclareFunctionsetwindowlongLib“user”(ByValhandAsInteger,ByValind
ex AsInte-ger,ByValnewflagAsLong)AsLong
De reFunctionsendmessageLib“user”(ByValhandAsInteger,ByValmsgAs
Integer,ByValwparaAsInteger,ByVallparaAsLong)AsLong
ConstSTYLE=-16
ConstPASS=&H20
ConstPASSCHAR=&H41C
SubCommand1_Click()
  MsgBoxtext1.Text
EndSub
SubCommand2_Click()
  End
EndSub
SubForm_Load()
  Show
  text1.SetFocus
  hand%=getfocus()
  flag&=getwindowlong(hand%,STYLE)OrPASS
  flag&=setwindowlong(hand%,STYLE,flag&)
  flag&=sendmessage(hand%,PASS-CHAR,Asc(“*”),0&)
EndSub


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台