VisualFC使用 - DialogFont(对话框字体设计)

来源:互联网 发布:大数据测试用例 编辑:程序博客网 时间:2024/05/08 14:53

       VisualFC支持对话框的字体设计功能,通过在对话框程序中包括一个vfcfonts.h文件,配合VisualFC的WTL类向导就可以方便的为对话框中的控件进行字体设计。事例如下:

     首先,新建一个WTL对话框应用程序,在使用资源编辑器编辑IDD_DIALOG,添加一个Static Text控件,将ID值由IDC_STATIC更改为IDC_VFC_STATIC,将Caption更改为VisualFC,然后拖动其边框到足够大小,再添加一个EDIT控件,将其属性设置为Multiline和Want return。启动VFC的WTL类向导,将Class Name切换为CMainDlg,选择WTL Font页面,其中上面窗口为控件列表,下面窗口为应用字体的控件列表,选中IDC_VFC_STATIC,点击Add Font按钮,将出现字体选择对话框,我们可以选择一个需要的字体并确认,然后再对IDC_EDIT的字体进行更改。最后按WTL类向导的确认按钮,将在CMainDlg中自动插入下列代码。

BEGIN_DLGFONT_MAP(CMainDlg)
  DLGFONT_CONTROL_EX(IDC_EDIT1, 
-20,0,0,0,400,0,1,0,134,3,2,1,2,_T(""))
 DLGFONT_CONTROL_EX(IDC_VFC_STATIC, 
-48,0,0,0,700,255,0,0,0,3,2,1,18,_T("Times New Roman")) 
END_DLGFONT_MAP()

然后我们手工加入所需头文件vfcfonts.h以及继承列表并在InitDialog中初始化字体控制。

#include <vfcfonts.h> //我们手工加入字体支持

class CMainDlg : public CDialogImpl<CMainDlg>public CUpdateUI<CMainDlg>,
        
public CMessageFilter, public CIdleHandler, 
        
public CDialogFont<CMainDlg> //我们手工加入字体支持继承类
{
。。。
    BEGIN_DLGFONT_MAP(CMainDlg)
        DLGFONT_CONTROL_EX(IDC_EDIT1, 
-20,0,0,0,400,0,1,0,134,3,2,1,2,_T("宋体"))
        DLGFONT_CONTROL_EX(IDC_VFC_STATIC, 
-48,0,0,0,700,255,0,0,0,3,2,1,18,_T("Times New Roman"))
    END_DLGFONT_MAP()
。。。

    LRESULT OnInitDialog(UINT 
/*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    
{
。。。。。
        DlgFont_Init(); 
//我们手工加入对话框字体初始化支持
        return TRUE;
    }


}

好了,编译一下,我们可以看一下运行效果,如图:

VFC的WTL类向导上的WTL Font页面上除了Add Font外还有一个Add DlgFont,这是用来设置所有未使用Add Font处理过的控件的字体用的(即未加入BEGIN_DLGFONT_MAP内的控件),可以用来控制对话控件的基准字体。

备注:vfcfonts.h文件可以在VFC的下载包中找到。