字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    ,参数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 implcomntation (.CPP file )

    BOOL CSampleDialog : : OnInitDialog ( )

    {

    …

    //Subclass the edit lontrod .

    m_wndEdit.SubclassDlgItem (IDC_EDIT,this );

    …

    }

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

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

    下例说明了如何显示字母字符,如果字符是字母字符,则调用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 );

    }

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·108·

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

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

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

    将字符转变为大写。

    //Make all charact
上一章 目录 下一页