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

VC语言6.0程序设计从入门到精通-第33章

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






    该成员函数声明方式如下:  



    int LineLength( int nLine = – 1 ) const;  



    CEdit 的成员函数,用于获取指定字符索引所在行的字节长度(行尾的回车和换行符不 

计算在内),参数 nLine 说明了为字符索引。如果 nLine 的值为…1,则函数返回当前行的长度 

(假如没有正文被选择),或选择正文占据的行的字符总数减去选择正文的字符数(假如有正 

文被选择)。若用于单行编辑框,则函数返回整个正文的长度。  



    8.GetLine()函数  



    该成员函数声明方式如下:  



    int GetLine( int nIndex; LPTSTR lpszBuffer ) const;  



    int GetLine( int nIndex; LPTSTR lpszBuffer; int nMaxLength ) const;  



    CEdit 的成员函数,仅用于多行编辑框,用来获得指定行的正文(不包括行尾的回车和 

换行符)。参数 nIndex  是行号,lpszBuffer 指向存放正文的缓冲区,nMaxLength  规定了拷贝 

的最大字节数。若指定的行号小于编辑框的实际行数,函数返回实际拷贝的字节数,若指定 

的行号大于编辑框的实际行数,则函数返回 0 。需要注意的是,GetLine 函数不会在缓冲区中 

字符串的末尾添加字符串结束符(NULL )。  



    9 .SetWindowText()函数  



    该函数的声明方式如下:  



    void SetWindowText(LPCTSTR lpszString);  



    CWnd  的成员函数,用来设置窗口的标题或控件中的正文,参数 lpszString  可以是一个 

CString 对象,或是一个指向字符串的指针。  



    10.SetSel()函数  



    该成员函数声明方式如下:  



    void SetSel(DWORD dwSelection;BOOL bNoScroll=FALSE);  



    void SetSel(int nStartChar;int nEndChar;BOOL bNoScroll=FALSE);  



    CEdit 的成员函数,用来选择编辑框中的正文。参数 dwSelection 的低位字节说明了选择 

开始处的字符索引,高位字节说明了选择结束处的字符索引。如果低位字为 0 且高位字节为 

…1,那么就选择所有的正文,如果低位字节为…1,则取消所有的选择。参数 bNoScroll 的值如 



 ·106 ·  


…………………………………………………………Page 116……………………………………………………………

                                                                                               第 5 章    常用控件  



果是 FALSE ,则滚动插入符并使之可见,否则就不滚动。参数 nStartChar 和 nEndChar  的含 

义与参数 dwSelection 的低位字节和高位字节相同。  



      11.ReplaceSel() 函数  



      该成员函数声明方式如下:  



      void ReplaceSel(LPCTSTR lpszNewText;BOOL bCanUndo = FALSE);  



      CEdit 的成员函数,用来将所选正文替换成指定的正文,参数 lpszNewText 指向用来替换 

的字符串。参数 bCanUndo  的值为 TRUE 说明替换是可以被撤消的。  

      如 果 在 编 辑 控 件 中 只 允 许 接 收 数 字 , 可 以 在 一 个 标 准 的 编 辑 控 件 中 指 定 标 志 

ES_NUMBERS ,该标志限制编辑控件只按收数字字符。如果用户需要复杂的编辑控件,可以 

使用微软公司提供的屏蔽编辑控件,它是一个很有用的 OLE 定制控件。  

      也可以从 CEdit 类派生一个类并处理 WM_CHAR 消息,然后从编辑控件中过滤出特定的 

字符。具体方法为:首先,使用 ClassWizard 建立一个 CEdit 的派生类,其次,在对话类中指 

定一个成员变量,将编辑控件分类在 OnInitdialog() 中调用下面的代码段:  



      CWnd::SubclassDlgItem  



      {  



      //In your dialog class declaration (。H file )    



      private :    



           CMyEdit m_wndEdit ; // Instance of your new edit control      



      }  



        



      //In you dialog class implementation (。CPP file )    



      BOOL CSampleDialog : : OnInitDialog ( )    



      {    



            …    



                 //Subclass the edit lontrod 。    



                 m_wndEdit。SubclassDlgItem (IDC_EDIT;this );    



            …    



      }  



      然后使用 ClassWizard 处理 WM_CHAR 消息,计算 nChar 并决定所执行的操作,用户可 

以确定是否修改、传送字符。  

      下例说明了如何显示字母字符,如果字符是字母字符,则调用  CWnd::OnChar,否则不 

调用 OnChar 。  



      //Only display alphabetic dharacters 。    



      void CMyEdit::OnChar (UINT nChar;UINT nRepCnt;UINT nFlags)    



      {    



           //Determine if nChar is an alphabetic character 。    



           if (::IsCharAlpha ((TCHAR) nChar))    



                 CEdit::OnChar (nChar; nRepCnt ; nFlags );    



      }  



                                                                                                          ·107 ·  


…………………………………………………………Page 117……………………………………………………………

Visual C++ 6。0 程序设计从入门到精通  



     如果要修改字符,则不能仅仅简单地用修改过的  nChar                             调用    CEdit::OnChar ,然后用 

CEdit::OnChar 调用 CWnd::Default 获取原来的 wParam  和 lParam  的值。要修改一个字符, 

需要首先修改 nChar ,然后用修改过的 nChar 调用 CWnd: : DefWindowProc 。下例说明了如何 

将字符转变为大写。  



     //Make all characters uppercase    



     void CMyEdit::OnChar (UINT nChar;UINT nRepCnt;UINT nFlags)    



     {    



         //Make sure character is uppercase 。    



         if (::IsCharAlpha (( TCHAR) nChar))    



              nChar=::CharUpper (nChar ) ;    



         //Bypass default OnChar processing and directly call    



         //default window proc。    



         DefWindProc(WM_CHAR;nChar;MAKELPARAM (nRepCnt;nFlags));    



     }  



5。3    滚动条(Scroll Bar)控件  



5。3。1    滚动条控件的使用  



     滚动条(Scroll Bar)是一种传统控件,主要用来从某一预定义值范围内快速有效地进行 

浏览,分为垂直滚动条(Horizontal Scroll Bar )和水平滚动条(Vertical Scroll Bar )两种,如 

图 5…3 所示。在滚动条内有一个滚动框,用来表示当前的值。用鼠标单击滚动条,可以使滚 

动框移动一页或一行,也可以直接拖动滚动框。滚动条既可以作为一个独立控件存在,也可 

以作为窗口、列表框和组合框的一部分。Windows 2000 中还支持比例滚动框,即用滚动框的 

大小来反映页相对于整个范围的大小。  



                                                             



                                     图 5…3    滚动条样例  



     需要指出的是,从性质上划分,滚动条可分为标准滚动条和滚动条控件两种。标准滚动 

条是由 WS_HSCROLL 或 WS_VSCROLL 风格指定的,它不是一个实际的窗口,而是窗口的 

一个组成部分(例如列表框中的滚动条 ),只能位于窗口的右侧(垂直滚动条 )或底端(水平 

滚动条),标准滚动条是在窗口的非客户区中创建的 。与之相反,滚动条控件并不是窗口中的 

一部分,而是一个实际的窗口,可以放置在窗口客户区的任意地方,它既可以独立存在,也 

可以与某一个窗口组合,行使滚动窗口的职能。由于滚动条控件是一个独立窗口,因此可以 

拥有输入焦点,可以响应光标控制键,如 PageUp 、PageDown 、Home 和 End 等。  



 ·108 ·  


…………………………………………………………Page 118……………………………………………………………

                                                                第 5 章    常用控件  



    滚动条控件封装在 MFC 的 CScrollBar 类中,CScrollBar 类的 Create 成员函数用于创建控 

件,该函数的声明如下:  



    BOOL Create(DWORD dwStyle; const RECT& rect;CWnd* pParentWnd;UINT nID );  



    参数 dwStyle 指定了控件的风格,rect 说明了控件的位置和尺寸,pParentWnd 指向父窗 

体,该参数不能为 NULL 。nID 则说明了控件的 ID 。如果创建成功,该函数返回 TRUE,否 

则返回 FALSE 。  

    要创建一个普通的水平滚动条控件,应指定风格 WS_CHILD|WS_VISIBLE|BS_HORZ , 

要创建一个普通的垂直滚动条控件,应指定风格 WS_CHILD|WS_VISIBLE|BS_VERT 。  



5。3。2    CscrollBar 类的主要成员函数  



    下面将介绍 CScrollBar 类主要的成员函数。  



    1.GetScrollPos()函数  



    该成员函数声明如下:  



    int GetScrollPos() const;  



    该函数返回滚动框的当前位置,若操作失败则返回 0 。  



    2 .SetScrollPos()函数  



    该成员函数声明如下:  



    int SetScrollPos(int nPos;BOOL bRedraw = TRUE);  



    该函数将滚动框移动到指定位置。参数 nPos  指定了新的位置,参数 bRedraw  表示是否 

需要重绘滚动条,如果为 TRUE,则重绘之。函数返回滚动框原来的位置,若操作失败则返 

回 0 。  



    3 .GetScrollRange()函数  



    该成员函数声明如下:  



    void GetScrollRange(LPINT lpMinPos;LPINT lpMaxPos) const;  



    该函数对滚动条的滚动范围进行查询。参数 lpMinPos 和 lpMaxPos 分别指向滚动范围的 

最小、最大值。  



    4 .SetScrollRange()函数  



    该成员函数声明如下:  



    void SetScrollRange(int nMinPos;int nMaxPos;BOOL bRedraw = TRUE);  



    该函数用于指定滚动条的滚动范围。参数 nMinPos 和 nMax
返回目录 上一页 下一页 回到顶部 0 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!