说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
VB如何在VB中制作不回显的文本框
在应用程序中,有时需要用户录入一些不宜在屏幕上直接显示的内容,如用户口令或机密数据。我们已熟知,在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”(ByVal handAsInteger,ByVal indexAsInte-ger)AsLong
DeclareFunctionsetwindowlongLib“user”(ByVal handAsInteger,ByVal indexAsInte-ger,ByVal newflagAsLong)AsLong
DeclareFunctionsendmessageLib“user”(ByVal handAsInteger,ByVal msg As Integer,ByVal wparaAsInteger,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&)
End Sub
littleBits新推Cloud Module,普通人也能DIY智能硬件 如何创建浮动式标签模式? Office 365正式落地中国——移动为先,云为先 .NET Native:C++的性能 C#的产能? Arduino联合创始人Tom Igoe:创客,因何而创 【走近院士】高文:多媒体大数据的影响及面临的挑战 微软SQL Server 2014三大新特性:集成内存OLTP、BI和混合云搭建 Linux将会统治桌面端的7个原因 Intel首席科学家Randolph Wang:详解Edison AMD Mantle再添新作,引发下代GPU架构猜想 谈DAM决策,自建还是SaaS 证据显示:Linux战争已经转移到OpenStack RestKit:iOS开发必备,告别众多无聊代码 技术新突破:手机和平板可远程控制PC,Chrome Remote Desktop亮相 物联网高速公路上,快数据如何驱动分析 苹果或将使用雅虎的搜索引擎,抛弃谷歌 百万用户规模的系统如何扩展 大数据需要软件定义存储 倒计36小时!2014中国Spark技术峰会即将召开! 设计师专宠,Startup强大的UI设计框架 走进金山云:从技术走向服务 Qt Creator 3.1.0发布,全面支持iOS、Android、WP Google大中华区总裁石博盟与中国大学生畅谈科技与创新 阿里云:从防到攻,深入浅出DDoS 大数据处理分析的六大最好工具 微软:Windows Phone开发者可回复用户评价 不断缩水后的微博上市首日大涨19% 曾一度涨超40% Snapdragon LLVM编译器全新升级 支持骁龙64位处理器 EDP:基于Node.JS与NPM的企业级开发平台 想改变世界,先改变自己——知名Hacker、发明家Mitch Altman专访 《近匠》iHealth,健康大数据助力硬件“破壳” 改TstringField后的问题怎么解决? 敬请关注!vb数据库问题! 女友长的漂亮真的会短寿? 快救救我 难道MSDN也有错误 哪位大侠知道怎样打印stringgrid?小弟成分感谢,并高分相送 怎样才能从邮件中读出邮件的接收日期? 字符输入老是重复怎么回事 请问谁用C++编写过MP3的程序? 请问各位高手,给小弟介绍几个比较好的计算机图书的网站吧。 Access 2000不识别{ts '2001-06-21 21:14:01.890000'}中的.890000,如何解决? 如何得到webbrower控件下载消息?(比如下载*.zip文件) 难题一条 MTS怎么只能生成*.pak 和*.dll,却不能生成Clients子目录及在客户端安装的*.exe COM组件安装! PB 的新问题,有性趣请进!!!! 新手,键值问题 这样的问题没人会????? 大家帮忙看个程序 ACCESS数据库的小问题。 怎样使自己的问题成为热点问题的绝招! 关于c++builder中scanline的应用 跨数据库查询,请教各位高手! 这样的问题也没人会????????????????? 如何使用QuickRep制作简单报表?不牵涉任何DataSet的 关于Transaction的问题 请问 ListCtrl Item里的 Checkbox 被点击时对应的消息是什么? 100分~~100分~~高分求购。。。我也‘倾家荡产求购优秀系统分析案例’(paste from yyzh)。。。100分~~ 全中文的用Rose做的实际项目的UML模型! 救命!!我的机器不能下载东西了,怎么回事?? 求教邮件编程问题,邮件客户端如何实现“在服务器端保留备份的功能“? ciscoworks 各位大哥大虾,VC下如何用ADO连SQL SERVER?(急) ShellExecute和CreateProcess有什么区别? 关于海量数据、最有效率的排序、硬盘缓冲与映射、专业数据库的讨论 如何用VB编启动是可以带参数的程序呢?(例如:我自定义了一种文件,双击用我的程序打开,程序自动会打开这个文档 昨天我过生日,今天分蛋糕给大家 请问哪有《java图形设计2Swing篇》可以下? 我要用一个数据库去实时访问另一个据库,我该怎么办 URLghj1976@csdn.net----别吓我,有请您老人家! 谁给我介绍一下sql server7.0教材的比较好的下载网站,我给他20分。 我都急死了,到搜索引擎里搜到的好几个站点都不能用,到底哪儿可以当到3DMAX? 谁有写的比较好的邮件收发程序? 一个微软证书的私钥问题 微软证书的私钥问题 求助,简单问题 男人最快乐的十个瞬间! solaris下装oracle8.1.6遇到jre环境问题 怎抹加分?我准备给别人加40分,可我最多只能加20,请问另外20分怎末加分,为此我可能已得罪了一些人了。 请教下载的问题 如何在运行时动态修改Quick Report的打印机设置? 求极限lim (sinx/x)^(1/1-cosx),x趋向于0答案是e的负三分之一次为什么不能用等价代换公式得sinx/x=1?然后极限就等于1? 括号x减去y的平方等于9括号x减去y的平方等于5求x的平方加y的平方与xy的值 (2-根号3)的2013次方乘(2+根号3)的2014次方是多少?这种题怎么算? 已知函数fx=x(x-c)²在x=2处有极大值,求常数c 求极限lim(cosx)^[(π/2)-x],x趋向π/2 已知x的绝对值等于3括号y加1的平方等于4且xy小于0求x加y的值 求极限lim x→+∞[√(x+a)√(x+b)-x]注意:是根号下(X+A)(X+B)-X,为表示明白我展开了最后那个X是在根号外面的得0的是在胡说 求极限 lim(x趋向于0) (cosx)^(1/x^2) x的一元二次方程x的平方-4x+m-1=0有两个相等的实数根,求m的值 lim((a^3+b^3+c^3)/3)^(1/3)的极限x趋向于0lim((a^x+b^x+c^x)/3)^(1/x)我太搞笑了是这个 lim x-0 1-cosx/x平方的极限是多少详细的问题说明,有助于回答者给出准确的答案 已知关于x的一元二次方程x2-4x+m-1等于0有两个相等实数根,求m的值及方程的根 洛必达法则求极限:lim x→0 a^x-b^x/x(a>0,b>0)如题 求极限lim[cosx-e^(-x^2/2)]/x^4 其中x趋向于0 已知关于x的一元二次方程x平方-4x+m-1=0有两个相等实数根,求m的值及方程的根. 请帮忙求极限:lim[(a+x)^x-a^x]/x^2,x趋于0.答案是1/a.但不知过程.题目是出给微积分只学了第一章的同学出的,不能用什么洛必达法则或泰勒公式之类的 怎样求lim(x趋向1)时(x)的三次方-1 / (x)的平方-1的极限 12开根号3次方等于多少? 求极限lim[(1-x)^10-1]/[(1-x)^11-1]x趋近于0 极限lim(x趋向无穷)(x平方+x)/(x的四次方-3x平方+1) 2根号3×1.5开三次方×12开六次方=? x趋向于1求lim(x/x-1)的极限 求lim(x趋向于0)(1/x-1/( e的x次方-1))的极限 化简:log(2根号3)(144乘根号12开4次方) lim—> -1. X^2的极限存在吗? 已知lim x→0 [sin6x+xf(x)]/x^3=0,求 lim x→0 [6+f(x)]/x^2?为什么不可以这样解 因为lim x→0 [sin6x/(6x)]=1所以,lim x→0 [sin6x+xf(x)]/x^3=lim x→0 [6x+xf(x)]/x^3=lim x→0 [6+f(x)]/x^2=0这哪里错了? 比较根号5开5次方 根号3开3次方 根号2的大小 求lim x[(√1+x²) -x] 的极限,x→﹢∞ 求极限lim(x->0)(sin6x-6x)/x^3,自学中求助:求极限lim(x->0) (sin6x-6x) / x^3 3分之1(1-根号81)+根号2次方-1 极限:lim(x->2)1/(x-2) 求极限当x→0若lim[sin6x+x f(x)]/x^3=0,求lim[6+ f(x)]/x^2答案不重要.我只想知道为什么对第一个式子上下同除以x,为什么会是错的,错在哪,兄弟,我想问的是如果把[sin6x+x f(x)]/x,x^3/x (即同除以x)第一 已知a>0且a≠1,设f(x)=a的x次方除以(a的x次方+根号a),求f(1/10)+f(2/10)+…+f(9/10)的值.作业本上的= = 还有一题是 (1+2的﹣1/6)(1+2的﹣1/4)(1+2的﹣1/2)=?解题步骤最好清晰一点,太乱了看不清 = = lim(1+x/2)^x+2 求极限x→∞ 假设lim(x趋于0)[(sin6x+xf(x))/x^3]=0,则lim(x趋于0)[(6+f(x))/x^2]=?, 设函数f(x)=a的(x-1/2)次方,且f(lga)=根号10,求a的值 lim (x→∞) ﹙1+2/x)^x+2 求极限 求极限当x→0若lim[sin6x+xnbsp;f(x)]/x3=0,求lim[6+nbsp;f(x)]/x2若lim[sin6x+xf(x)]/x3=0,求lim[6+nbsp;f(x)]/x2nbsp;nbsp;x→0nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;x→0 (1+根号2)的2012次方乘(1-根号2)的2013次方 lim(1/(x+1)+1/(x^2-1)) x->-1 求极限 lim(sinx/X2+3X)x趋于零时的极限这题等于多少, (根号3-根号2)的2012次方*(根号3+根号2)的2013次方 求极限lim(1-2/x+3/x^2)^x lim(x→0﹚(3次根号下1+x2)/x2的极限 (2+根号3)2013次方与(2-根号3)2012次方乘积的结果是 求极限lim(x->0)((a^x+b^x)/2)^(1/x)有没有简略的步骤?a,b>0 lim((1/x2)-(ctgx)2) x趋向0的极限值 根号2-根号3的2012次方乘根号2加根号3的2013次方 求极限lim x-0 a^x-b^x /x (a〉0 b>0) 若m减三的绝对值加n加二括号的二次方等于零,则m加2n的和的三次方的值为多少? 若y=根号x-1+根号1-x,则x的2013次方+y的2012次方=? 求极限!lim(x趋向于1)x的平方+2x+3/x+2求极限lim(x趋向于1)x的平方+2x+3/x+3《有没有人知道?》是求极限! 若a-b的绝对值加b加1的平方=0 则2a的2007的次方减3b的2008的次方的值为多少 若根号x+1+(y-2013)的根号=0则x的y次方=? 求lim(x趋向于3时)x/(x的平方减9). 若a-1的绝对值与(b+2)的平方互为相反数,求:(a+b)的2008次方+a的2007次方的值 若根号x+1+(y-2013)的根号=0则x的y次方=多少 怎样求lim(x趋向1)时X的三次方-1 / X的平方-1的极限 已知xy为相反数,且括号x加二的平方减括号y加二的平方等于四,求xy的 (根号3-2)的2013次方·(根号3+2)的2014次方(根号3-2)的2013次方·(根号3+2)的2014次方
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn