Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4775399
  • 博文数量: 206
  • 博客积分: 5240
  • 博客等级: 大校
  • 技术积分: 3224
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 21:40
文章分类

全部博文(206)

文章存档

2013年(13)

2012年(8)

2011年(33)

2010年(152)

我的朋友

分类:

2010-10-09 22:14:34

参考
1.
2.

Windows 窗体文本框用于获取用户输入或显示文本。 控件通常用于可编辑文本,不过也可使其成为只读控件。文本框可以显示多个行,对文本换行使其符合控件的大小以及添加基本的格式设置。 控件为在该控件中显示的或输入的文本提供一种格式化样式。若要显示多种类型的带格式文本,请使用 (多功能文本框) 控件。有关更多信息,请参见 

控件显示的文本包含在  属性中。默认情况下,最多可在一个文本框中输入 2048 个字符。如果将  属性设置为 true,则最多可输入 32 KB 的文本。 属性可以在设计时使用“属性”窗口设置,在运行时用代码设置,或者在运行时通过用户输入来设置。可以在运行时通过读取  属性来检索文本框的当前内容。




一。快手语法

创建控件语句:

edit={ bottom=97;right=166;left=28;multiline=1;top=35;font=LOGFONT( name="宋体";h=-12 );z=1;text="edit";edge=1;cls="edit" }



说明
bottom :获取控件下边缘与其容器的工作区上边缘之间的距离(以像素为单位)
right:获取控件右边缘与其容器的工作区左边缘之间的距离(以像素为单位)。
left:获取或设置控件左边缘与其容器的工作区左边缘之间的距离(以像素为单位)。
top:获取或设置控件上边缘与其容器的工作区上边缘之间的距离(以像素为单位)。
multiline:获取或设置一个值,该值指示此控件是否为多行  控件。 (ture=1,flase则不显示,快手默认为ture可设置高度)
font:获取或设置控件显示的文字的字体。
text:获取或设置  中的当前文本。

**密码框设置:在属性语句添加"password=1"即可
如:

edit={ bottom=80;right=210;left=38;top=56;font=LOGFONT( name="宋体";h=-12 );z=1;password=1;text="edit";edge=1;cls="edit" }




控件语法:

winform.edit.oncommand = function(id,event){

 //win.msgbox( winform.edit.text );

 a=winform.edit.text//把输入框的值赋于变量a

}//endproc



设置文本输入框焦点
win.setFocus(winform.edit.hwnd)
::SetFocus( winform.edit.hwnd )

edit换行
  • 自动换行

winform.richedit.wrap = true;

  • 强制换行
    普通edit用'\r\n'换行,richedit用'\n'换行
    winform.edit.text += '\r\n';
    winform.richedit.text += 
'\n'
STYLE样式
可以在在语句区添加

winform.edit.modifyStyle(0,8192) //设置STYLE样式

modifyStyle的第一个参数表示移除的样式,第二个参数表示要添加的样式


也可以在控件属性设置样式style=0x2000/*_ES_NUMBER*/只允许输入整数数字,小数点不能输入。

edit={ bottom=132;right=224;left=40;multiline=1;top=87;font=LOGFONT( name="宋体";h=-12 );style=0x2000/*_ES_NUMBER*/;z=1;text="";edge=1;cls="edit" }





文本编辑框常用消息通知

编辑框
_EN_CHANGE编辑框中的文本己更新
_EN_ERRSPACE编辑框内存不足
_EN_HSCROLL用户点击了水平滚动条
_EN_KILLFOCUS编辑框正在失去输入焦点
_EN_MAXTEXT插入的内容被截断
_EN_SETFOCUS编辑框获得输入焦点
_EN_UPDATE编辑框中的文本将要更新
__EN_VSCROLL用户点击了垂直滚动条消息含义

库中源码(\win\ui\ctrl*控件集合)
class edit{

    //构造函数
    ctor(parent,tvalue){
if( tvalue.readonly )
tvalue.style |= 0x800/*_ES_READONLY*/
if( tvalue.password )
tvalue.style |= 0x20/*_ES_PASSWORD*/
else if( tvalue.multiline ){
tvalue.style |= 0x4/*_ES_MULTILINE*/
tvalue.style |= 0x1000/*_ES_WANTRETURN*/;
}
   if( tvalue.number )
    tvalue.style |=0x2000/*_ES_NUMBER*/
   
if(! tvalue.hidesel )
tvalue.style |= 0x100/*_ES_NOHIDESEL*/
//输入时文本框自动向右,向下滚动
tvalue.style |=  ( 0x80/*_ES_AUTOHSCROLL*/ |  0x40/*_ES_AUTOVSCROLL*/ )
tvalue.bgcolor := 16777215;

        select(tvalue.align) {
case  "center"   
  tvalue.style |= 0x1/*_ES_CENTER*/; 
case "right" 
  tvalue.style |= 0x2/*_ES_RIGHT*/; 
else 
tvalue.style |= 0x0/*_ES_LEFT*/;
}
 
if(tvalue.edge) 
{
tvalue.exstyle |= 0x200/*_WS_EX_CLIENTEDGE*/; 
}
    }
    
@metaProperty;
}
edit.metaProperty = editDecorateMeta( ..win.ui.ctrl.metaProperty( ) );
 

属性

!edit.lineCount = 获取行数
!edit.setsel(1,__) = 设置选区,参数(起始位置,结束位置)
!edit.getsel() = 获取选区起始位置,结束位置
!edit.selText = 获取或设置选区文本\n仅支持richedit控件
!edit.modified = 文本内容是否已修改
!edit.rangeText(.(起始位置,结束位置) = 返回指定位置文本(仅richedit支持)
!edit.text = 编辑控件文本属性
!edit.hwnd = 控件句柄
!edit.id = 控件ID
!edit.parent = 父窗口
!edit.parent.hwnd = 父窗口句柄
!edit.hide = 控件是否隐藏
!edit.disabled = 控件时否可见
!edit.left = 左侧坐标
!edit.right = 右侧坐标
!edit.top = 顶部坐标
!edit.bottom = 底部坐标
!edit.limit = 字符数限制
!edit.scrollCaret = 滚动到光标处
!edit.lineScroll(.(滚动到指定行) = 滚动条移动到指定行
!edit.lineScroll(.(滚动指定行,列) = 滚动条移动到指定行\n第二个参数对richedit无效
!edit.lineToChar = 获取指定行首字符偏移位置
!edit.lineFromChar = 返回指定位置行数
!edit.lineText = 获取指定行文本
!edit.redraw() = 刷新
!edit.show(true__) = 显示控件
!edit.rect = 控件区块位置(::RECT结构体)
!edit.clientRect =  控件客户区块位置(::RECT结构体)
!edit.font = 控件字体(::LOGFONT结构体)
!edit.clientRect =  获取控件客户区块位置(::RECT结构体)
!edit.theme = 外观主题,例如\nwinform.button.theme = "Explorer"\nwinform.button.theme = false
!edit.modifyStyle(.(remove,add) = 如果指定第三个参数,则使用此参数调用::SetWidnowPos 
!edit.modifyStyleEx(.(remove,add) = 如果指定第三个参数,则使用此参数调用::SetWidnowPos
!edit.capture = 是否捕获全局鼠标消自息
!edit.close() = 关闭控件窗
!edit.invalidate(__/*可选使用::RECT()对象指定客户区*/) = 使窗口绘图区无效
!edit.invalidate(__/*可选使用::RECT()对象指定客户区*/,0) = 使窗口绘图区无效\n不刷新背景
!edit.update() = 重绘invalidate函数指定的区块
!edit.wrap = 是否启用自动换行,仅richedit支持
!edit.onlink = @.onlink=function(msg,title){\n \n}
?win.ui.ctrl.edit  =!edit.
?win.ui.ctrl.richedit  =!edit.






阅读(11552) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~