WEB开发网
开发学院软件开发VC 一个简单字体察看器的实现 阅读

一个简单字体察看器的实现

 2010-07-11 20:44:29 来源:WEB开发网   
核心提示:为IDC_EENTERED添加EN_CHANGE事件消息函数:void CFontsViewDlg::OnEnChangeEentered(){ // TODO:如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,一个简单字体察看器的实现(4),除非重写 CDialog::OnInitDialog()

为IDC_EENTERED添加EN_CHANGE事件消息函数:

void CFontsViewDlg::OnEnChangeEentered()
{
   // TODO: 如果该控件是 RICHEDIT 控件,则它将不会
   // 发送该通知,除非重写 CDialog::OnInitDialog()
   // 函数并调用 CRichEditCtrl().SetEventMask(),
   // 同时将 ENM_CHANGE 标志“或”运算到掩码中。

   // TODO: 在此添加控件通知处理程序代码
   UpdateData(TRUE);
   m_strDisplay=m_strEntered;
   UpdateData(FALSE);
}

OK,再编译一下看看:)

虽然有了显示,但是它还不能根据选定字体来进行变换,所以我们必须添加一个变量来设置和改变字体。在CFontsViewDlg类中添加一个变量,变量类型为CFont变量名设为m_fSetFont,访问类型为Private。再添加一个函数,用来显示和选用字体。在CFontsViewDlg类中,添加函数,类型设为void,函数名为 SetMyFont,访问为 Private。代码如下:

void CFontsViewDlg::SetMyFont(void)
{
   CRect rRect;

   if(m_strFontName.GetLength()>0)
   {
     m_ctlDisplay.GetWindowRect(&rRect);
     m_fSetFont.Detach();
     m_fSetFont.CreateFont((rRect.Height()-5),
           0,0,0,FW_NORMAL,
           0,
           0,
           0,
           DEFAULT_CHARSET,
        OUT_CHARACTER_PRECIS,
        CLIP_CHARACTER_PRECIS,
        DEFAULT_QUALITY,
        DEFAULT_PITCH|FF_DONTCARE,
        m_strFontName);
     m_ctlDisplay.SetFont(&m_fSetFont);
   }
}

最后给 IDC_LFONTS 添加一个 LBN_SELCHANGE 事件消息函数就大功告成了:

void CFontsViewDlg::OnLbnSelchangeLfonts()
{
   // TODO: 在此添加控件通知处理程序代码
   UpdateData(TRUE);
   SetMyFont();
}

基本上要实现的功能都有了,如果大家还想进一步完善,可以具体参考以下MSDN对CreateFont函数的定义,然后对他进行参数传递,就能实现诸如斜体,改变字号,下画线等功能。

编译环境:WindowsXP+ Microsoft Visual C++ .NET

本文配套源码

上一页  1 2 3 4 

Tags:一个 简单 字体

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接