要使文本在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(, ); CHARFORMAT stCharFormat; m_RichEdit.GetSelectionCharFormat(stCharFormat);
stCharFormat.dwMask |= CFM_SIZE;
//每次滚动条被触发,调整字体高度
stCharFormat.yHeight = nSliderPos * ;
m_RichEdit.SetSelectionCharFormat(stCharFormat); m_SliderPos.SetWindowText(strSliderPos); }
} CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}