EditBox 控件的用法

本文介绍了如何扩展CEditBox控件,包括设置控件的最大容量,通过SetLimitText()函数调整。在不同操作系统下,最大容量限制不同。此外,还展示了如何设置编辑控件的前景色、背景色、字体及其大小,并通过消息反射函数CtlColor()修改颜色。同时,提供了设置文本颜色、背景色和字体的接口函数。最后,讲解了访问和操作编辑控件内容的方法,如读取、设置文本,以及与文件的交互功能,如加载、保存文件,以及自定义右键菜单的实现。
摘要由CSDN通过智能技术生成
设置控件的容量:
EditBox控件默认情况下只能装入64k的文本,如果超出,多出部分会被自动截掉。利用CEdit的SetLimitText()函数可重新设置控件容量
函数原型:
Void SetLimitText(UINT nMax)
参数为nMax为控件可接收的文本最大字节数。


设置方法:用ClassWizard在CEditBox类中添加消息函数PreSubclassWindow(),把设置文本容量的语句放在里面即可。


void CEditBox::PreSubclassWindow()
{
    SetLimitText( -1 );    //设置编辑控件可接收的最大字节数
    CEdit::PreSubclassWindow();
}


因为nMax为无符号整型,-1是把它设置为可以取到的最大值。你也可以根据需要设置控件的容量。


注意:在不同操作系统下,控件可设置的最大容量也不同。如果是Windows98,这个值就是64K,无法再增大了,而在Windows2000和WindowsXP下这个值要大得多,才可以起到增加控件容量的目的。


二、设置编辑控件的前景色、背景色和字体:


在CEditBox的头文件中加入以下变量定义:


COLORREF    m_ForeColor;       //文本颜色
COLORREF    m_BackColor;       //背景色
CBrush      m_BkBrush;         //背景刷
CFont*      p_Font;            //字体指针
int         m_FontSize;        //字体大小(1/10点)
CString     m_FontName;        //字体名


在CEditBox的构造函数中设置它们的初值:


CEditBox::CEditBox()
{
    m_ForeColor = RGB(0,0,0);          //文字颜色(黑)
    m_BackColor = RGB(255,255,255);    //文字背景色(白)
    m_BkBrush.CreateSolidBrush(m_BackColor);   //背景刷
    p_Font = NULL;        //字体指针
}


在CEditBox的析构函数中回收创建的字体资源:


CEditBox::~CEditBox()
{
    if( p_Font )
        delete p_Font;    //回收字体资源
}


这里只设置了前景色和背景色的默认值,如果想设置默认字体,可在上面的PreSubclassWindow()函数中进行设置:
void CEditBox::PreSubclassWindow()
{
    SetLimitText( -1 );    //设置编辑控件可接收的最大字节数
    
    m_FontSize = 100;
    m_FontName = _T("宋体");
    p_Font = new CFont;    //生成字体对象
    p_Font->CreatePointFont( m_FontSize, m_FontName );  //创建字体
    SetFont( p_Font );     //设置控件默认字体


    CEdit::PreSubclassWindow();
}


这里使用了比较简单的CreatePointFont()函数创建字体,它只需给出字体尺寸和字体名。如果想创建更复杂的字体,可以改用CreateFont()函数。本例中设置控件的初始字体为尺寸为100(0.1点)的“宋体”字。
如果你想用EditBox本身的默认字体作为初始字体,就不要在PreSubclassWindow()函数中加入这些语句。
用ClassWizard添加消息反射函数CtlColor()来修改控件的文本颜色和背景色。
注意:在ClassWizar
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值