⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_29849.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:29849 发表者:凌仕晓 发表日期:2003-02-14 11:49:12
<br>主题:各位大虾看看,谁对这个有研究?????
<br>内容:请看这三段代码(关于改变字体的):<BR><BR>//代码段一:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFontDialog fd(NULL,CF_EFFECTS|CF_SCREENFONTS,NULL,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LOGFONT lf;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFont *pFont=new CFont;<BR>&nbsp;&nbsp;&nbsp;&nbsp;fd.GetCurrentFont(&amp;lf);&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lf.lfHeight=30;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lf.lfWidth=18;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lf.lfWeight=800;<BR>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(lf.lfFaceName,"隶书");//好多书上也是这样写的;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pFont-&gt;CreateFontIndirect(&amp;lf);<BR>&nbsp;&nbsp;&nbsp;&nbsp;Edit.SetFont(pFont,TRUE);//Edit是编辑框的Ctrl型变量;<BR>//执行后,只是字号比默认的大,字体为宋体,即lfFaceName没有改变.<BR>//代码段二:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFont *pFont=new CFont;<BR>&nbsp;&nbsp;&nbsp;&nbsp;VERIFY(font.CreateFont(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// nHeight<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // nWidth<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // nEscapement<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // nOrientation<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 800,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // nWeight<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FALSE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // bItalic<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FALSE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // bUnderline<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // cStrikeOut<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ANSI_CHARSET,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// nCharSet<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OUT_DEFAULT_PRECIS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// nOutPrecision<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLIP_DEFAULT_PRECIS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // nClipPrecision<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT_QUALITY,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // nQuality<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT_PITCH | FF_SWISS,&nbsp;&nbsp;// nPitchAndFamily<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "隶书"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // lpszFacename<BR>&nbsp;&nbsp;&nbsp;&nbsp;Edit.SetFont(pFont,TRUE);<BR>//执行效果同代码段一;<BR>//可下面又是可以的;<BR>//代码段三:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFontDialog fd(NULL,CF_EFFECTS|CF_SCREENFONTS,NULL,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LOGFONT lf;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFont *pFont=new CFont;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(fd.DoModal()==IDOK)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fd.GetCurrentFont(&amp;lf);<BR>&nbsp;&nbsp;&nbsp;&nbsp;lf.lfHeight=30;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lf.lfWidth=18;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lf.lfWeight=800;<BR>&nbsp;&nbsp;&nbsp;&nbsp;s.Format("%s",lf.lfFaceName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(s);&nbsp;&nbsp;//我在字体选择框中选择隶书,这里弹出的是隶书两个字;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pFont-&gt;CreateFontIndirect(&amp;lf);<BR>&nbsp;&nbsp;&nbsp;&nbsp;Edit.SetFont(pFont,TRUE);<BR>//这下可以把字体设为隶书,为了仔细了解lfFaceName的情况,我加入了下面代码测试:<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;32;i++)//查了一下,都讲lfFaceName为32个字符.<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CString s;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.Format("%d",lf.lfFaceName[i]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(s);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>//总共弹了32下,<BR>//第一下(N[0])上面什么都没有,二(N[1]):-63,三(N[2]):-91,四:-54,五:-23,六:0,七:0......0<BR>//(一直到第32下即lfFaceName[31]都是 0 ;<BR>//可见N[1]~N[4]为隶书两字,N[5]以后为'\0'(字符串尾的那个空字符);<BR>//那N[0] 是一个什么东西呢,我用 '\0',NULL 都和它比了一下,都不相同.<BR><BR>//哪位大虾对此有研究,不妨指点一二,我对此控索了好多时日了,不得解!!!!!!!!!!<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:问不休 回复日期:2003-02-14 13:40:15
<br>内容:&nbsp;&nbsp;是语系设置的问题。<BR>&nbsp;&nbsp;代码段1实际上没有使用字体设置对话框,函数GetCurrentFont()返回的是系统默认语系字体。<BR>&nbsp;&nbsp;正如代码段2所示系统默认语系为ANSI_CHARSET。<BR>&nbsp;&nbsp;修改语系为CHINESE-GB2312即可。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凌仕晓 回复日期:2003-02-14 19:25:59
<br>内容:谢谢你的指点,非常感谢,不过我试了charset应该为GB2312_CHARSET.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -