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

2016-02-19 14:54 10 1 收藏

今天图老师小编给大家精心推荐个如何在VB中制作不回显的文本框教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

  在应用程序中,有时需要用户录入一些不宜在屏幕上直接显示的内容,如用户口令或机密数据。我们已熟知,在Foxbase/Foxpro中这一功能可以用SETCONSOLEOFF命令关闭向屏幕的回显来实现。那么,在VisualBasicforWin-dows中如何做到这一点呢?

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

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

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

  getfocus():返回获得输入焦点的目标句柄;

  getwindowlong():取得指定目标的信息,第二个参数为GWL_STYLE时将返回目标的风格属性;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  setwindowlong():把新的属性值赋予指定的目标。该函数的三个参数分别为目标的句柄、属性类型、新属性值;

  sendmessage():向目标发送一条消息。该函数的四个参数分别为接收消息的目标句柄、消息、消息参数一、消息参数二;

  GWL_STYLE(程序中简写为STYLE):其值为-16,表示目标的风格;

  ES_PASSWORD(程序中简写为PASS)简写为PASS):其值为&H20,表示目标具有录入口令的属性,即在录入时不回显;

  EM_SETPASSWORDCHAR(程序中简写为PASSCHAR):其值为&H41C,表示传递密码特性。用sendmessage向目标传递此消息成功,则目标会将自身的输出信息以指定的密码形式给出。

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

  

DeclareFunctiongetfocusLibuser()AsIntegerDeclareFunctiongetwindowlongLibuser(ByValhandAsInteger,ByValindex AsInte-ger)AsLongDeclareFunctionsetwindowlongLibuser(ByValhandAsInteger,ByValindex AsInte-ger,ByValnewflagAsLong)AsLongDe reFunctionsendmessageLibuser(ByValhandAsInteger,ByValmsgAsInteger,ByValwparaAsInteger,ByVallparaAsLong)AsLongConstSTYLE=-16ConstPASS=&H20ConstPASSCHAR=&H41CSubCommand1_Click()  MsgBoxtext1.TextEndSubSubCommand2_Click()  EndEndSubSubForm_Load()  Show  text1.SetFocus  hand%=getfocus()  flag&=getwindowlong(hand%,STYLE)OrPASS  flag&=setwindowlong(hand%,STYLE,flag&)  flag&=sendmessage(hand%,PASS-CHAR,Asc(*),0&)EndSub

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1608279.html

延伸阅读
celluloid如何编辑文本框的样式   填充颜色:选中文本框,可以在 属性 填充 填充方式 中选择色彩填充。 填充渐变色:选中文本框,可以在 属性 填充 填充方式 中选择渐变填充 。 外扩效果:文字紧贴文本框边缘,若要制作文本框填充范围向外扩展且不影响内部文字的效果,首先选中文本框,再依次执行 属性 填充...
标签: Web开发
文本框栏目介绍
标签: 电脑应用
Word2003办公软件中,为大家提供了一种很常用的文字处理效果,就是“文本框”。此效果可以将输入的文字和段落用“方行”框起来,就像添加了边框一样。 给予一种特殊的排版效果。当然,此效果没任何限制,可任意框选任意字数。下面就让我们一起来看看吧! “文本框”有两种使用方法。 方法一、先插入“文本框”...
旋转文本框可以达到更好的显示效果,只是在旋转文本框时,会发现文本框中的文字没有随文本框旋转,这是怎么回事呢?原因当然是有的啦,只是大家没有发现而已。拖动旋转时发现文字并没有随文本框而旋转,这时可以右击设置对象格式,选择允许文字随对象旋转前的复选框,之后确定,再试试拖动旋转就可以了。 相关知识 在WPS文字上如何将字体横过...
标签: 办公软件
Word文本框只有矩形一种,感觉比较单调。虽然Word 2003不能直接插入很漂亮的文本框,但是,漂亮的文本框却是可以DIY的。好了,不多说了,动手吧。 一、异形文本框 选中插入的文本框,然后点击绘图工具栏中的绘图→改变自选图形,然后在给出的类别中选一个合适的自选图形。呵呵,看到了吗?文本框的外形改变了吧?另外,我...

经验教程

702

收藏

33
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部