想做一个像记事本的东西。(开发环境为VC6)
在做的时候,因为要进行字体的设置,但是不知道这个字体在系统中是不是存在,这个时候如何去判断某个字体在系统是不是已经安装了没有啊?另外,还想问下,大家谁对text记事本中字体设置比较熟悉,我在设置字体之后,好像老是不能达到自己想要的结果。
就比如说是设置一个特殊字符,想让他的字宽为两个空格的位置,但是怎么设置也作不到,可是在记事本上就可以做到,这里需要什么特殊的参数设置吗?
以上两个问题请大家帮忙啊!分数不够可以追加!
在做的时候,因为要进行字体的设置,但是不知道这个字体在系统中是不是存在,这个时候如何去判断某个字体在系统是不是已经安装了没有啊?另外,还想问下,大家谁对text记事本中字体设置比较熟悉,我在设置字体之后,好像老是不能达到自己想要的结果。
就比如说是设置一个特殊字符,想让他的字宽为两个空格的位置,但是怎么设置也作不到,可是在记事本上就可以做到,这里需要什么特殊的参数设置吗?
以上两个问题请大家帮忙啊!分数不够可以追加!
能列举出系统内所有已经安装的字体
====================================
你的第二个问题不是问题,还是你自己参数没有用对,仔细看一下msdn关于字体的说明
int CALLBACK EnumFontsProc(
LOGFONT* lplf,
TEXTMETRIC* lptm,
DWORD dwType,
LPARAM lpData
){
return 1;
} LPARAM lp;
CHARFORMAT cf;
CRichEditView::OnInitialUpdate();
GetRichEditCtrl().LimitText(0);
GetRichEditCtrl().SetReadOnly(FALSE);
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
CFontJustView* pView =(CFontJustView*) pMain->GetActiveView();
HDC hdc=::GetDC(pView->m_hWnd); lp = EnumFonts(NULL,"XXXXXXXXX",(FONTENUMPROC)EnumFontsProc,lp); if(lp == 0){
//this font does not exist
} else {
//this font does exist
}
非常谢谢dch4890164 的帮助。
C:WINDOWNS /FONTS
文件夹下面的文件实际上
安装字体意思这样的复制字体文件到哪里
{
m_wndListBox.ResetContent (); CClientDC dc (this);
::EnumFontFamilies ((HDC) dc, NULL, (FONTENUMPROC) EnumFontFamProc,
(LPARAM) this);
}int CALLBACK CMainWindow::EnumFontFamProc (ENUMLOGFONT* lpelf,
NEWTEXTMETRIC* lpntm, int nFontType, LPARAM lParam)
{
CMainWindow* pWnd = (CMainWindow*) lParam; if ((pWnd->m_wndCheckBox.GetCheck () == BST_UNCHECKED) ||
(nFontType & TRUETYPE_FONTTYPE))
pWnd->m_wndListBox.AddString (lpelf->elfLogFont.lfFaceName);
return 1;
}