richedit缩放

本程序下载地址:  

  要使文本在richedit控件上进行放大缩小,可以通过设置字体的大小,从而来达到缩放文本的目的。

下面是一个例子:通过调整滚动条,从而控制richedit文本缩放。

程序运行结果如下:

首先在对话框的InitInstance函数中初始化richedit, 对话框才能显示出来

AfxInitRichEdit();

之后处理滚动条响应函数,从而来调整字体大小,实现缩放效果。

//滚动条响应函数
void CRichEditDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
    // TODO: Add your message handler code here and/or call default
    
    if(NULL != pScrollBar)
    {
        //获取滚动条ID
        int nSliderId = pScrollBar->GetDlgCtrlID();

        if(IDC_SLIDER1 == nSliderId)
        {
            CString strSliderPos = "";

            //获取滚动条位置
            int nSliderPos  = m_SliderCtrl.GetPos();

            strSliderPos.Format("%d", nSliderPos);

            //选择RichEdit中头两个字符
            m_RichEdit.SetSel(0, 2);
            
            CHARFORMAT stCharFormat;

            m_RichEdit.GetSelectionCharFormat(stCharFormat);
            stCharFormat.dwMask |= CFM_SIZE;
            //每次滚动条被触发,调整字体高度
            stCharFormat.yHeight = nSliderPos * 3;                
            m_RichEdit.SetSelectionCharFormat(stCharFormat);
    
            m_SliderPos.SetWindowText(strSliderPos);            

        }
    }

    CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

 

posted @ 2014-04-04 12:27  VC初学者  阅读(558)  评论(0编辑  收藏  举报