All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET中常用的优化性能方法_.net资料_编程技术
基础知识之认识和使用,RSS+asp.net_[Asp.Net教程]
PHP对特殊语句查询结果进行数组排序_php资料_编程技术
用ASP.NET开发电子商务网站对数据库表的设计_.net资料_编程技术
C#控制语句中的switch语句用法
应用实例:用javascript实现定时任务_JavaScript技术_编程技术
TFS2008,and,SQL,SERVER,2008_mssql学习_编程技术
php配置,链接access数据库_[PHP教程]
ASP.Net留言本:用ASP.Net和Access编写留言本_[Asp.Net教程]
在datagrid中求和的代码(c#、vb.net)_[Asp.Net教程]
Reading number is top 10 pictures
The money of more than 100 countries and regions1
哥斯达黎加的门将是如何练成的
青春清纯美女大集合1
Average female college students1
Black and white also sexy--YanLiu2
在加油站厕所门口看到的告示
乳娘帕梅拉安德森2
南昌铁路局宜春车务段攸县车站铁路职工福利房被开发商侵占
Startling Russian girl blind date scene2
青春清纯美女大集合4
Download software ranking
Tram sex maniac 2 (H) rar bag11
The king of fighters 97(Mobile phone games-apk)
好色的外科大夫
C#程序员参考手册
C#编程思想
VC++6.0简体中文版
Unix video tutorial8
ASP.NET.2.0.XML.高级编程(第3版)
Unix video tutorial5
Ashlynn Video1
qq published in(发表于) 2014/7/9 22:36:01 Edit(编辑)
C#中的编辑控件(Edit Box)

C#中的编辑控件(Edit Box)

C#中的编辑控件(Edit Box)

编辑控件(Edit Box)

1.概述

编辑控件(Edit Box)又称文本框,也是在程序开发过程中经常使用的控件,通常编辑控件与静态文本一起使用,用于数据的输入或输出。编辑控件提供了完整的键盘输入和编辑功能,可以输入各种文本、数值或密码,并可以进行剪切、粘贴等操作,当一个编辑控件获得焦点时,框内会出现一个闪动的插入符。

编辑控件支持单行编辑和多行编辑,由Multline属性决定。编辑框其他常用属性有:Number表示只能输入数字,Password表示键入编辑框的字符都显示掩码“*”,用于输入密码。Border用于设置控件的边框,Uppercase或Lowercase表示键入编辑框的字符全部转换成大写或小写形式,Read-Only表示只能输入数据。

当编辑框的文本被修改时,它会向其父窗口发送EN_CHANGE消息;当字符数目达到限定值时发送EN_MAXTEXT消息;当编辑框中的文本被修改且新的文本没有显示之前发送EN_UPDATE消息。

编辑控件对应的MFC中的CEdit类,这个类中常用的成员函数如表1所示。



表1 CEdit类中常用的成员函数

2.扩展的编辑控件类

编辑控件提供了属性Number,可以用它限制用户输入的文本是数值。但美中不足,Number属性被选中的编辑控件不支持小数,这无疑是数据库应用软件所不允许的。下面介绍一种扩展的编辑控件类CExpandEdit,它支持小数的输入。另外,这个控件类还支持当用户按下回车时,将焦点移动到Tab键顺序为当前控件顺序加1的控件上。

分析:

这两个问题都非常简单,当用户输入一个字符时,会产生一个KEYDOWN消息,读者需要先将这个消息截获,然后判断输入的字符是否是0~9的数字或“.”,如果不是,不让这个消息执行;如果为回车,就向系统发送Tab,这样,系统会认为是Tab,就会执行Tab键按下时的动作。

下面是这个类的原型:

class CExpandEdit : public CEdit

{

public:

CExpandEdit();

public:

void SetNumbrOnly(bool bOnly=true); //设置是否启动只输入数字(包括".")的功能

virtual ~CExpandEdit();

private:

bool m_NumberOnly; //记录是否启动功能的成员变量

};

当用使用SetNumbrOnly()函数时,将成员变量m_NumberOnly设置为True,表示用户已经启动了只输入数字(包括“.”)功能。

void CExpandEdit::SetNumbrOnly(bool bOnly)

{

m_NumberOnly=bOnly;

}

下面是此类的关键,重载虚函数PreTranslateMessage(),用它来处理发送给对话框的消息。

BOOL CExpandEdit::PreTranslateMessage(MSG* pMsg)

{

if(pMsg->message==WM_KEYDOWN)

{

if(pMsg->wParam==13)

{

pMsg->wParam=9; //"Tab"

return CEdit::PreTranslateMessage(pMsg);

}

if((pMsg->wParam<48 || pMsg->wParam>57)&&

pMsg->wParam!=190 && //"."

pMsg->wParam!=13 && //"Enter"

pMsg->wParam!=8&& //"Back Space"

m_NumberOnly==true)

//小键盘

if(pMsg->wParamwParam>VK_NUMPAD9 &&

pMsg->wParam!=110) //小键盘上的"."

pMsg->wParam=VK_CONTROL;

}

return CEdit::PreTranslateMessage(pMsg);

}

运行效果如图1所示。



图1 CExpandEdit类的使用




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.