友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
喜书网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第57章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




        可以由父窗口发送的滚动条消息。  



        类型:布尔值 默认值:假  



Number:  用户不能输入非数字字符。类型:布尔值  

        默认值:假  



Horizontal  为多行控件提供水平滚动条。类型:布尔 

scroll:  值 默认值:假  



Auto    当用户输入的字符超过了编辑框的右边界 

HScroll:  时自动水平向右滚动文本。类型:布尔值  

        默认值:真  



Vertical  为多行控件提供垂直滚动条。类型:布尔 

scroll:  值 默认值:假  



Auto    在多行控件中,当用户在最后一行按下 

VScroll:  ENTER键时 自动向上滚动文本  



Password:   当用户键入时将所有字符显示为星号 

         (*)。该属性对于多行控件不可用。类 

        型:布尔值 默认值:假  



No   hide  改变当编辑框失去和重新获得焦点时文本 

selection:  的显示方式。如果该属性为真,在编辑框 

        中选中的文本在任何时候都显示为选中状 

        态 (即反白状态)。类型:布尔值      默认 

        值:假  



OEM     将键入的文本从Windows字符集转换为OEM 

convert:  字符集,再转换回Windows字符集。该操 

        作确认应用程序在调用AnsiToOem函数将 

        编辑框中的字符串转换为OEM字符串时进 

        行正确的字符转换,因此该样式对于包括 

        文件名的编辑控件特别有用。类型:布尔 

        值 默认值:假  


…………………………………………………………Page 349……………………………………………………………

         Want      指定当用户在多行编辑控件中按下ENTER 

         return:   键时插入一个回车符,否则用户按下 

                   ENTER将被解释为选择了对话框中的默认 

                   命令按钮。该样式对于单行编辑框控件没 

                   有任何影响。类型:布尔值 默认值:假  



         Border:   在编辑框边缘创建边框。类型:布尔值  

                   默认值:真  



         Uppercase:  将用户在编辑框中输入的字符转换为大 

                   写。类型:布尔值 默认值:假  



         Lowercase:  将用户在编辑框中输入的字符转换为小 

                   写。  



                   类型:布尔值 默认值:假  



         Read…only:  防止用户编辑和更改编辑框中的文本。类 

                   型:布尔值 默认值:假  



相比我们在前面所讲述的几个类CButton、CBitmapButton和CStatic 

而言,封装标准编辑控件的MFC类CEdit要复杂得多。表给出了在类 

CEdit中定义的成员函数:  



                表6。 25 类CEdit中定义的成员函数  



        成员函数         描述  



        CEdit        构造CEdit控件对象  



        Create       创建Windows编辑控件,并将其与 

                     CEdit对象相关联  



        GetSel       获得编辑控件中当前选择的开始和 

                     结束字符的位置  



        ReplaceSel   使用特定的文本来替换编辑控件中 

                     的当前选择  



        SetSel       设置编辑控件中所选定的字符范围  



        Clear        删除编辑控件中当前选定的字符  



        Copy         使用CF_TEXT格式将编辑控件中当前 

                     选定的文本复制到剪贴板  


…………………………………………………………Page 350……………………………………………………………

Cut            删除当前选定的字符,并将所删除 

                的字符复制到剪贴板  



Paste          将剪贴板中格式为CF_TEXT的数据 

                (如果有的话)插入到编辑框中的当 

                前位置。  



Undo           撤销最后一次编辑操作  



CanUndo         决定编辑控件的操作是否可以被撤 

                销  



EmptyUndoBuffer  重置编辑控件的undo标志  



GetModify      判断编辑控件中的内容是否被修改 

                过  



SetModify       设置或清除编辑控件中的修改标志  



SetReadOnly     设置编辑控件的只读状态  



GetPasswordChar  当用户输入文本时获得编辑控件中 

                显示的密码字符  



SetPasswordChar  设置或移去当用户输入文本时编辑 

               控件中显示的密码字符  



GetFirstVisibleLine  获得编辑控件中最上面的可见行  



LineLength      获得编辑控件中一行的长度  



LineScroll     滚动多行编辑控件中的文本  



LineFromChar    获得包含指定索引字符的行的行号  



GetRect         获得编辑控件的格式矩形  



LimitText       限制用户可以在编辑控件中输入的 

                文本的长度  



GetLineCount    获得多行编辑控件中行的数 目  



GetLine         获得编辑控件中的一行文本  



LineIndex       获得多行编辑控件中一行的字符索 

                引  



FmtLines       在多行编辑控件中设置是否包含软 

                换行符的开关  



                                           续表6。25 


…………………………………………………………Page 351……………………………………………………………

         成员函数     描述  



         SetTabStops  在多行编辑控件中设置制表位  



         SetRect  设置多行文本编辑控件的格式矩形,并更新 

                  控件  



         SetRectNP  设置多行文本编辑控件的格式矩形,但不重 

                  绘控件窗口  



         GetHandle  获得为多行编辑控件分配的内存的句柄  



         SetHandle  设置供多行编辑控件使用的本地内存句柄  



         GetMargins  获得当前CEdit对象的左右页边距  



         SetMargins  设置当前CEdit对象的左右页边距  



         GetLimitText  获得当前CEdit对象可以包括的最大文本量  



         SetLimitText  设置当前CEdit对象可以包括的最大文本量  



         CharFromPos  获得最接近于指定位图的行和字符的索引  



         PosFromChar  获得指定字符索引的左上角的坐标  



上面的成员函数涵盖了编辑控件在使用中的很多方面,可以满足我们 

在很多情况下的绝大部分需要。这里要注意的是,一些CWnd中定义的 

成员函数也是很重要的,比如说我们常用CWnd的成员函数 

GetWindowText和SetWindowText来获取和设置编辑控件的文本,使用 

成员函数GetFont和SetFont来获取和设置编辑控件显示文本时所使用 

的字体。  



编辑控件可以向父窗口发送的通知消息也要比前面讲述的几种控件 

多。这些消息有:  



 ON_EN_CHANGE:                 编辑控件不能按选定需要 

 ON_EN_ERRSPACE:               分配足够的内存  



 ON_EN_HSCROLL:                用户单击了编辑控件中的 

                               水平滚动条。父窗口在屏 

                               幕更新前获得此消息  



 ON_EN_KILLFOCUS:              编辑控件失去输入焦点  



 ON_EN_MAXTEXT:                当前插入内容超过了编辑 


…………………………………………………………Page 352……………………………………………………………

                            控件中的指定的字符数, 

                            该插入内容已被裁剪。如 

                            果控件没有设置 

                            ES_AUTOHSCROLL样式,那 

                            么在插入的字符超出了编 

                            辑控件的宽度也发送该通 

                            知消息。同样,如果控件 

                            没有指定ES_AUTOVSCROLL 

                            样式,该通知也以插入操 

                            作导致总行数超过编辑控 

                            件的高度时发送。  



ON_EN_SETFOCUS:             编辑按钮获得输入焦点  



ON_EN_UPDATE:               控件已对文本作了格式 

                            化,但尚未显示文本。通 

                            常可以处理该消息以决定 

                            是否需要对窗口的大小作 

                            改变等。  



ON_EN_VSCROLL:              用户单击了编辑控件的垂 

                            直滚动条。父窗口在屏幕 

                            更新前收到该消息。  



示例程序EditDemo演示了编辑控件的一般使用方法。按如下步骤创建 

该工程:  



1。 使用AppWizard创建基于对话框的工程EditDemo。  



2。  向工程中添加菜单资源IDR_MAINMENU,该菜单资源包括两个顶层 

菜单项 “文件 (&F)”和 “编辑 (&E)”, “文件 (&F)”下包括如图6。41 

所示的菜单命令。各菜单命令 (不包括具有Separator样式的菜单项) 

的资源ID依次为ID_FILE_NEW和ID_FILE_EXIT。 “编辑 (&E)”菜单下 

包括如图6。42所示菜单命令。各菜单命令的资源ID依次为 

ID_EDIT_UNDO、ID_EDIT_CUT、ID_EDIT_COPY、ID_EDIT_PASTE、 

ID_EDIT_DEL、ID_EDIT_SELECTALL和ID_EDIT_SETFONT。  



                           



              图6。 41  “文件”菜单下的菜单命令  


…………………………………………………………Page 353……………………………………………………………

                                    



                   图6。 42  “编辑”菜单下的菜单命令  



3。   按图6。43在应用程序的主对话框上绘制编辑框 (对应于Control工 

具箱中的图标为          ),设置其ID为IDC_EDIT,并将其Multiline属性、 

Auto     VScroll属性和Want        return属性设置为
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!