在RichEdit控件中加入“复制”“粘贴”等功能

 

 

RichEdit本身好像不带“剪切”“复制”等功能,所以自己可以派生一个RichEdit的子类,加入这些功能,例如取名“RichEditCtrlEx”。

下面是这个类的一些关键成员函数:

//  叠加格式
void  CRichEditCtrlEx::SetFormatRange( int  nStart,  int  nEnd, BOOL bBold, COLORREF clr,COLORREF backclr)
{
    
if (nStart >= nEnd)
        
return;

    SetSel(nStart, nEnd);    
    DWORD dwEffects 
= bBold?CFE_BOLD:0;

    CHARFORMAT cfm;
    cfm.cbSize 
= sizeof(cfm);
        GetSelectionCharFormat(cfm);
    
    
if ((cfm.dwMask & CFM_COLOR)  && cfm.crTextColor == clr &&         
        (cfm.dwMask 
& CFM_BOLD) && (cfm.dwEffects & CFE_BOLD) == dwEffects)
        
return;

    cfm.dwEffects 
= dwEffects;
    cfm.crTextColor 
= clr;
    cfm.dwMask 
= CFM_BOLD | CFM_COLOR;

    SetSelectionCharFormat(cfm);

    
// 加入选择
    HIRange hirange;
    hirange.rng.cpMin 
= nStart;
    hirange.rng.cpMax 
= nEnd;

    GetSelectionCharFormat(cfm);
    hirange.cmf 
= cfm;
    m_HiRange.Add(hirange);        
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值