CString字符串在编辑框中让对齐

等宽字体,比如Courier New字体,用SetFont设置。

控制台的字体是等宽的, 用等宽字体就跟控制台一样了

MFC中改变控件字体

在对话框的初始化函数中添加下段代码

1 static CFont Sfont;
2 static CFont Bfont;
3 //CFont font;//不加static 貌似改变不了字体大小
4 Sfont.CreatePointFont(200,"隶书");
5 Bfont.CreatePointFont(150,"宋体");
6 GetDlgItem(IDC_STATIC)->SetFont(&Sfont);
7 GetDlgItem(IDC_BUTTON1)->SetFont(&Bfont);

字体大小对照换算表

 

pt   磅或点数,是point简称 1磅=0.03527厘米=1/72英寸

inch 英寸,1英寸=2.54厘米=96像素(分辨率为96dpi)
px   像素,pixel的简称(本表参照显示器96dbi显示进行换算。像素不能出现小数点,一般是取小显示)

我需要创建一个指定像素高度的字体,应该用CreatePointFont还是CreateFont呢??

事实证明要用 CreateFont 更合适。

因为我用 CreatePointFont 创建完毕后,在使用时获取到得字高和我设置的是不一致的。

当然,也可能是我对 CreatePointFont 的用法了解的不够透彻。

不管怎么说吧 ,还是 CreateFont 更简单直白一些。

CreateFont

该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 使用完毕需要DeleteObiect 。

函数原型:

  HFONT CreateFont(

  int nHeight, // logical height of font

  int nWidth, // logical average character width

  int nEscapement, // angle of escapement

  int nOrientation, // base-line orientation angle

  int fnWeight, // font weight

  DWORD fdwItalic, // italic attribute flag

  DWORD fdwUnderline, // underline attribute flag

  DWORD fdwStrikeOut, // strikeout attribute flag

  DWORD fdwCharSet, // character set identifier

  DWORD fdwOutputPrecision, // output precision

  DWORD fdwClipPrecision, // clipping precision

  DWORD fdwQuality, // output quality

  DWORD fdwPitchAndFamily, // pitch and family

  LPCTSTR lpszFace // pointer to typeface name string

  );

参数:

   cHeight是字体的高度。

  cWidth是字体的宽度。

  cEscapement是字体的倾斜角。

  cOrientation是字体的倾斜角。

  cWeight是字体的粗细。

  bItalic是字体是否斜体。

  bUnderline是字体是否有下划线。

  bStrikeOut是字体是否有删除线。

  iCharSet是字体使用的字符集。

  iOutPrecision是指定如何选择合适的字体。

  iClipPrecision是用来确定裁剪的精度。

  iQuality是怎么样跟选择的字体相符合。

  iPitchAndFamily是间距标志和属性标志。

  pszFaceName是字体的名称。

例子:

CFont font;
font.CreateFont(
  12,                       // nHeight
  0,                        // nWidth
  0,                        // nEscapement
  0,                        // nOrientation
  FW_NORMAL,                // nWeight
  FALSE,                    // bItalic
  FALSE,                    // bUnderline
  0,                        // cStrikeOut
  ANSI_CHARSET,             // nCharSet
  OUT_DEFAULT_PRECIS,       // nOutPrecision
  CLIP_DEFAULT_PRECIS,      // nClipPrecision
  DEFAULT_QUALITY,          // nQuality
   DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
   _T("Arial"));                // lpszFacename

// Do something with the font just created...
CClientDC dc(this); 

CFont* def_font = dc.SelectObject(&font);

dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);

// Done with the font.  Delete the font object.
font.DeleteObject();


 

CreatePointFont

这个函数提供了一种简单的方法来创建指定字体类型和字体大小 。

函数原型:

  BOOL CreatePointFont(

  int nPointSize,

  LPCTSTR lpszFaceName,

  CDC* pDC = NULL

  );

参数:

   nPointSize

  请求的字体的大小 。单位是磅的10倍 。

   磅和像素的关系:

       国外字体的大小一般是用磅表示,也就是PointSize的单位,1英寸=72磅, (Microsoft WORD 中指定字体的大小就是磅单位的) 

       在实际应用中我们通常使用逻辑点,即象素点数目作为尺寸创建字体,比如用函数CreateFont。或者像 LOGFONT中lfHeight和lfWidth, 

        一般显示器上72磅的字在显示器上高度lfHeight是96个象素点,你输入参数100,表示需要10磅的字体,系统找到最匹配的大约就是10几个象素点的字体(96*10/72)。

  lpszFaceName

  一个CSTring或者一个指向null-terminated(以空为结尾的)字符串指针来标注字体名称。长度不得超过30个字母。函数EnumFontFamilies可列举能够使用的字体。如果lpszFaceName是NULL,那么GDI uses a device-independent typeface.

  pDC

  指向CDC对象的指针,用来将字体大小转化为逻辑单位,如果是NULL,那么就根据屏幕当前的上下文(context)来转化

  返回值

  非零为成功,否则失败

在对话框的初始化函数中添加下段代码

1 static CFont Sfont;
2 static CFont Bfont;
3 //CFont font;//不加static 貌似改变不了字体大小
4 Sfont.CreatePointFont(200,"隶书");
5 Bfont.CreatePointFont(150,"宋体");
6 GetDlgItem(IDC_STATIC)->SetFont(&Sfont);
7 GetDlgItem(IDC_BUTTON1)->SetFont(&Bfont);

字体大小对照换算表

 

pt   磅或点数,是point简称 1磅=0.03527厘米=1/72英寸

inch 英寸,1英寸=2.54厘米=96像素(分辨率为96dpi)
px   像素,pixel的简称(本表参照显示器96dbi显示进行换算。像素不能出现小数点,一般是取小显示)

我需要创建一个指定像素高度的字体,应该用CreatePointFont还是CreateFont呢??

事实证明要用 CreateFont 更合适。

因为我用 CreatePointFont 创建完毕后,在使用时获取到得字高和我设置的是不一致的。

当然,也可能是我对 CreatePointFont 的用法了解的不够透彻。

不管怎么说吧 ,还是 CreateFont 更简单直白一些。

CreateFont

该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 使用完毕需要DeleteObiect 。

函数原型:

  HFONT CreateFont(

  int nHeight, // logical height of font

  int nWidth, // logical average character width

  int nEscapement, // angle of escapement

  int nOrientation, // base-line orientation angle

  int fnWeight, // font weight

  DWORD fdwItalic, // italic attribute flag

  DWORD fdwUnderline, // underline attribute flag

  DWORD fdwStrikeOut, // strikeout attribute flag

  DWORD fdwCharSet, // character set identifier

  DWORD fdwOutputPrecision, // output precision

  DWORD fdwClipPrecision, // clipping precision

  DWORD fdwQuality, // output quality

  DWORD fdwPitchAndFamily, // pitch and family

  LPCTSTR lpszFace // pointer to typeface name string

  );

参数:

   cHeight是字体的高度。

  cWidth是字体的宽度。

  cEscapement是字体的倾斜角。

  cOrientation是字体的倾斜角。

  cWeight是字体的粗细。

  bItalic是字体是否斜体。

  bUnderline是字体是否有下划线。

  bStrikeOut是字体是否有删除线。

  iCharSet是字体使用的字符集。

  iOutPrecision是指定如何选择合适的字体。

  iClipPrecision是用来确定裁剪的精度。

  iQuality是怎么样跟选择的字体相符合。

  iPitchAndFamily是间距标志和属性标志。

  pszFaceName是字体的名称。

例子:

CFont font;
font.CreateFont(
  12,                       // nHeight
  0,                        // nWidth
  0,                        // nEscapement
  0,                        // nOrientation
  FW_NORMAL,                // nWeight
  FALSE,                    // bItalic
  FALSE,                    // bUnderline
  0,                        // cStrikeOut
  ANSI_CHARSET,             // nCharSet
  OUT_DEFAULT_PRECIS,       // nOutPrecision
  CLIP_DEFAULT_PRECIS,      // nClipPrecision
  DEFAULT_QUALITY,          // nQuality
   DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
   _T("Arial"));                // lpszFacename

// Do something with the font just created...
CClientDC dc(this); 

CFont* def_font = dc.SelectObject(&font);

dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);

// Done with the font.  Delete the font object.
font.DeleteObject();


 

CreatePointFont

这个函数提供了一种简单的方法来创建指定字体类型和字体大小 。

函数原型:

  BOOL CreatePointFont(

  int nPointSize,

  LPCTSTR lpszFaceName,

  CDC* pDC = NULL

  );

参数:

   nPointSize

  请求的字体的大小 。单位是磅的10倍 。

   磅和像素的关系:

       国外字体的大小一般是用磅表示,也就是PointSize的单位,1英寸=72磅, (Microsoft WORD 中指定字体的大小就是磅单位的) 

       在实际应用中我们通常使用逻辑点,即象素点数目作为尺寸创建字体,比如用函数CreateFont。或者像 LOGFONT中lfHeight和lfWidth, 

        一般显示器上72磅的字在显示器上高度lfHeight是96个象素点,你输入参数100,表示需要10磅的字体,系统找到最匹配的大约就是10几个象素点的字体(96*10/72)。

  lpszFaceName

  一个CSTring或者一个指向null-terminated(以空为结尾的)字符串指针来标注字体名称。长度不得超过30个字母。函数EnumFontFamilies可列举能够使用的字体。如果lpszFaceName是NULL,那么GDI uses a device-independent typeface.

  pDC

  指向CDC对象的指针,用来将字体大小转化为逻辑单位,如果是NULL,那么就根据屏幕当前的上下文(context)来转化

  返回值

  非零为成功,否则失败

pt   磅或点数,是point简称 1磅=0.03527厘米=1/72英寸

inch 英寸,1英寸=2.54厘米=96像素(分辨率为96dpi)
px   像素,pixel的简称(本表参照显示器96dbi显示进行换算。像素不能出现小数点,一般是取小显示)

我需要创建一个指定像素高度的字体,应该用CreatePointFont还是CreateFont呢??

事实证明要用 CreateFont 更合适。

因为我用 CreatePointFont 创建完毕后,在使用时获取到得字高和我设置的是不一致的。

当然,也可能是我对 CreatePointFont 的用法了解的不够透彻。

不管怎么说吧 ,还是 CreateFont 更简单直白一些。

CreateFont

该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 使用完毕需要DeleteObiect 。

函数原型:

  HFONT CreateFont(

  int nHeight, // logical height of font

  int nWidth, // logical average character width

  int nEscapement, // angle of escapement

  int nOrientation, // base-line orientation angle

  int fnWeight, // font weight

  DWORD fdwItalic, // italic attribute flag

  DWORD fdwUnderline, // underline attribute flag

  DWORD fdwStrikeOut, // strikeout attribute flag

  DWORD fdwCharSet, // character set identifier

  DWORD fdwOutputPrecision, // output precision

  DWORD fdwClipPrecision, // clipping precision

  DWORD fdwQuality, // output quality

  DWORD fdwPitchAndFamily, // pitch and family

  LPCTSTR lpszFace // pointer to typeface name string

  );

参数:

   cHeight是字体的高度。

  cWidth是字体的宽度。

  cEscapement是字体的倾斜角。

  cOrientation是字体的倾斜角。

  cWeight是字体的粗细。

  bItalic是字体是否斜体。

  bUnderline是字体是否有下划线。

  bStrikeOut是字体是否有删除线。

  iCharSet是字体使用的字符集。

  iOutPrecision是指定如何选择合适的字体。

  iClipPrecision是用来确定裁剪的精度。

  iQuality是怎么样跟选择的字体相符合。

  iPitchAndFamily是间距标志和属性标志。

  pszFaceName是字体的名称。

例子:

CFont font;
font.CreateFont(
  12,                       // nHeight
  0,                        // nWidth
  0,                        // nEscapement
  0,                        // nOrientation
  FW_NORMAL,                // nWeight
  FALSE,                    // bItalic
  FALSE,                    // bUnderline
  0,                        // cStrikeOut
  ANSI_CHARSET,             // nCharSet
  OUT_DEFAULT_PRECIS,       // nOutPrecision
  CLIP_DEFAULT_PRECIS,      // nClipPrecision
  DEFAULT_QUALITY,          // nQuality
   DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
   _T("Arial"));                // lpszFacename

// Do something with the font just created...
CClientDC dc(this); 

CFont* def_font = dc.SelectObject(&font);

dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);

// Done with the font.  Delete the font object.
font.DeleteObject();


 

CreatePointFont

这个函数提供了一种简单的方法来创建指定字体类型和字体大小 。

函数原型:

  BOOL CreatePointFont(

  int nPointSize,

  LPCTSTR lpszFaceName,

  CDC* pDC = NULL

  );

参数:

   nPointSize

  请求的字体的大小 。单位是磅的10倍 。

   磅和像素的关系:

       国外字体的大小一般是用磅表示,也就是PointSize的单位,1英寸=72磅, (Microsoft WORD 中指定字体的大小就是磅单位的) 

       在实际应用中我们通常使用逻辑点,即象素点数目作为尺寸创建字体,比如用函数CreateFont。或者像 LOGFONT中lfHeight和lfWidth, 

        一般显示器上72磅的字在显示器上高度lfHeight是96个象素点,你输入参数100,表示需要10磅的字体,系统找到最匹配的大约就是10几个象素点的字体(96*10/72)。

  lpszFaceName

  一个CSTring或者一个指向null-terminated(以空为结尾的)字符串指针来标注字体名称。长度不得超过30个字母。函数EnumFontFamilies可列举能够使用的字体。如果lpszFaceName是NULL,那么GDI uses a device-independent typeface.

  pDC

  指向CDC对象的指针,用来将字体大小转化为逻辑单位,如果是NULL,那么就根据屏幕当前的上下文(context)来转化

  返回值

  非零为成功,否则失败

猜你喜欢

转载自www.cnblogs.com/unicornsir/p/12719376.html
今日推荐