如何设置字体的高度和宽度(100分)

  • 主题发起人 主题发起人 Zythum
  • 开始时间 开始时间
CreateFont???
 
h:=CreateFont(......);<br>&nbsp;nHeight、nWidth 可以按你的任意要求(可以做的很长或者很扁),lpszFace设置<br>为你要的fontname,其他为0就可以了(你还可以设置任意角度等等)<br><br>判断一下如果 h 不为 0就可以:<br><br>Edit1.Font.Handle:=h
 
pipi:<br>如果nWidth:=-50会怎麽样?<br>我现在一无资料,二无环境,谢谢!
 
Height 可以小于0,width只能0或者大于0<br><br>height可以小于0:<br><br>&gt; 0 The font mapper transforms this value into device units and matches it against the cell height of the available fonts.<br>0 The font mapper uses a default height value when it searches for a match.<br>&lt; 0 The font mapper transforms this value into device units and matches its absolute value against the character height of the available fonts.
 
pipi:<br>因为我用过一个做字体的工具,记得把一个character的width设为-100,<br>结果那个字就把前一个字符覆盖了.
 
h:=CreateFont(......)里不知是否有top,left之类的参数?
 
HFONT CreateFont(<br><br>&nbsp; &nbsp; int nHeight, // logical height of font <br>&nbsp; &nbsp; int nWidth, // logical average character width <br>&nbsp; &nbsp; int nEscapement, // angle of escapement <br>&nbsp; &nbsp; int nOrientation, // base-line orientation angle <br>&nbsp; &nbsp; int fnWeight, // font weight <br>&nbsp; &nbsp; DWORD fdwItalic, // italic attribute flag <br>&nbsp; &nbsp; DWORD fdwUnderline, // underline attribute flag <br>&nbsp; &nbsp; DWORD fdwStrikeOut, // strikeout attribute flag <br>&nbsp; &nbsp; DWORD fdwCharSet, // character set identifier <br>&nbsp; &nbsp; DWORD fdwOutputPrecision, // output precision <br>&nbsp; &nbsp; DWORD fdwClipPrecision, // clipping precision <br>&nbsp; &nbsp; DWORD fdwQuality, // output quality <br>&nbsp; &nbsp; DWORD fdwPitchAndFamily, // pitch and family <br>&nbsp; &nbsp; LPCTSTR lpszFace // pointer to typeface name string <br>&nbsp; &nbsp;);<br><br><br>&nbsp;<br>没有top,left之类的参数<br><br>
 
nOrientation参数好象是以字的左边线作为基线向上的角度吧?<br>like this:(以E字符为例)<br>&nbsp; &nbsp; *<br>&nbsp; &nbsp;*<br>&nbsp; *<br>&nbsp;* &nbsp;*<br>* &nbsp;*<br>* *<br>** &nbsp;*<br>* &nbsp;*<br>* *<br>**<br>*
 
CreateFont要求自己指定字体的全部风格,这样可能比较麻烦.如果只是想更改字体高度宽度的话,这样大概比较简单:<br>hFont=(HFONT)SendMessage(AWindow,WM_GETFONT,0,0);<br>GetObject(hFont,sizeof(LOGFONT),&amp;lf);<br>lf.lfHeight=...;<br>lf.lfWidth=...;<br>hFont=CreateFontIndirect(&amp;lf);<br>是C语言风格的,不想改了,自己转换一下吧
 
建立字体对象后CreateFont,在修改它的属性就可以了。
 
To Hao.Yu:<br>&nbsp; 如何转换?
 
用CreateFont产生的字体显示正确,但打印时是标准字体,为什么?如何解决?
 
因为你的打印机不支持该字体,解决的方法自然是为该打印机安装该字体。否则打印机将<br>按最相近的字体处理。
 
To “only you”:<br>&nbsp; &nbsp; 用CreateFont产生的字体如何安装?<br>
 
控件.Font.heigtt:=h;<br>控件.Font.top:=t;
 
不知道!但我说的原因是对的!
 
附加功能 &nbsp; 将问题提前 &nbsp; &nbsp;
 
后退
顶部