编程教程
您现在的位置: 中国个人站长站 >> 网络编程 >> Visual C++ >> 教程正文 编写丰富多彩的CEdit控件
推荐位

编写丰富多彩的CEdit控件

中国个人站长站 Visual C++ 点击数: 更新时间:2004-8-25

     VC++提供的标准控件和类库已经非常丰富,但是有时候它们还是无法很好的满足我们的需求,这里举CEdit为例.
   
我们需要过滤部分输入字符(比如仅限数字输入),很多网友推荐采用派生的方法:重载CEditOnChar()函数.这个方法比其他的确简洁明了,又做到了细化和可维护性原则.但是,我们还会碰到一种情况:采用派生也无法达到需求.比如:彩色的Caret和相应颜色的字符选中背景,限定字符输入,自动格式化字符串,任意制定EditBox的大小,任意制定字体,垂直方向居中等需求.无计可施之时,干脆写一个自己的CEdit.
   
下面介绍CEdit类的开发方法(别怕,微软标准的CEdit不是那么可怕,开发并不困难).
    1.
可以采用MFC的类向导,选中CWnd作为基类;现在编写其Create()函数:
            if(m_strClassName.IsEmpty())

            {

                        m_strClassName = AfxRegisterWndClass( CS_PARENTDC | CS_HREDRAW | CS_VREDRAW,

                                                                                                            ::LoadCursor( NULL, m_csName ),

                                                                                                            ( HBRUSH )::GetStockObject( GRAY_BRUSH ) );

            }

            lpszClassName = LPCTSTR(m_strClassName);

 

            dwStyle |= WS_CHILD;

 

            return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);

 

   2.编辑自己的Caret:

            大概你很少看到彩色的字符输入符号吧,因为系统采用的是单色的Caret.Caret能否由自己创建呢?答案是肯定的。可以使用CreateCaret

[1] [2] 下一页

教程录入:swh    责任编辑:swh 
个人站长站与你风雨同舟!
本站所提供的资源均来源于互联网,如有侵权行为,请与本站管理员联系,我们会第一时间删除!
·如果您发现《编写丰富多彩的CEdit控件》文章有错误,也请通知我们修改!
联系邮箱chinageren#126.com,谢谢支持!
站内搜索:
版权所有:中国个人站长站 2007-2008 未经授权禁止复制或建立镜像 客服QQ号:112731235
copyright © 2007-2008 www.ChinaGeRen.com online services. all rights reserved. 苏ICP备05000059号