CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

CreatePointFont创建的一个字他的宽是多少像素亚怎么计算的亚

楼主lastman001()2004-09-01 14:49:12 在 VC/MFC / 基础类 提问

比如font.CreatePointFont(80,"Arial",   &dc);  
  它的宽是多少像素  
  问题点数:0、回复次数:11Top

1 楼tyzyx(疯狂的人生)回复于 2004-09-01 15:08:52 得分 0

记不清了,去看看program   windows   一书。Top

2 楼lastman001()回复于 2004-09-01 15:14:38 得分 0

有的说是10:1  
  可是我试验的不像Top

3 楼lastman001()回复于 2004-09-01 15:46:11 得分 0

up呀  
  Top

4 楼bobob(静思)回复于 2004-09-01 16:49:28 得分 0

查查msdn吧,里面应该有。Top

5 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 17:11:58 得分 0

这个问题对我这个菜鸟级的人来说还是难了一点点,不过还是要帮楼主顶一下...因为菜鸟也想知道答案....关注中!Top

6 楼zhaogaojian(米柑年成-WWW.VSFAN.NET)回复于 2004-09-01 17:17:25 得分 0

有一段类似代码  
  CRect   CDrawText::Count_Size(CString   aqie)  
  {CMainFrame   *pMain=(CMainFrame   *)AfxGetApp()->m_pMainWnd;  
  CGraphView   *pView=(CGraphView   *)pMain->GetActiveView();  
  CDC*   pDC   =pView->GetDC();  
  CFont   font;  
  LOGFONT   m_logfonttemp;  
  m_logfonttemp=m_logfont;  
  m_logfonttemp.lfHeight=CountHeight(m_logfonttemp.lfHeight);  
  font.CreateFontIndirect(&m_logfonttemp);  
  CFont   *pFont=pDC->SelectObject(&font);//字体要和Draw中子体一杨  
  pDC->SetMapMode(MM_HIMETRIC);//视图映射模式  
  CString   tempString;  
  CString   string;  
  CString   findstring("\n"   );  
  CSize   haha;  
  CSize   TotalSize   =   CSize(0,0);  
   
  CRect   aa   =   Size_Of_Text;  
  int   hang   =   0,j   =   0,line   =   0,lie   =   0;  
  string   =   aqie;  
  if(!string.IsEmpty())  
  {  
  line   =   string.GetLength();  
  j   =   string.Find(   findstring);  
  while(j   !=   -1)  
  {hang   =   j;  
  tempString   =   string.Left(   j   );  
  string   =   string.Right(   line-j-1   );  
  line   =   line-j-1;  
  j   =   string.Find(   findstring   );  
  if(hang<j)   hang   =   j;  
  lie++;  
  haha   =   pDC->GetTextExtent(tempString);  
  TotalSize   =   AddToMySize(TotalSize,haha);  
  }  
  if((j   ==   -1)&&(lie   ==   0))  
  {haha   =   pDC->GetTextExtent(string);  
  Size_Of_Text   =   CRect(aa.TopLeft(),haha);  
  }  
  else   if((j   ==   -1)&&(lie   !=   0))  
  {haha   =   pDC->GetTextExtent(string);  
  TotalSize   =   AddToMySize(TotalSize,haha);  
  Size_Of_Text   =   CRect(aa.TopLeft(),TotalSize);  
  }  
  }  
  else{  
  Size_Of_Text   =   CRect(0,0,0,0);  
  }  
  pDC->SelectObject(pFont);  
  font.DeleteObject();  
   
  pView->ReleaseDC(pDC);//释放DC资源  
  return   Size_Of_Text;  
   
  }Top

7 楼zhaogaojian(米柑年成-WWW.VSFAN.NET)回复于 2004-09-01 17:17:52 得分 0

CSize   CDrawText::AddToMySize(CSize   total,   CSize   add)  
  {CSize   T1;  
  T1   =   total;  
  if(T1.cx<add.cx)  
  T1.cx   =   add.cx;  
  T1.cy   +=   add.cy+1;  
  return   T1;  
   
  }Top

8 楼wwwllg(野蛮人)回复于 2004-09-01 19:12:37 得分 0

先得到罗辑的每个点实际的物理点个数  
  然后*   80Top

9 楼huwei001982(凶猛的小狗)回复于 2004-09-01 21:18:37 得分 0

看 MSDN吧!  
   
  第一个参数: Requested   font   height   in   tenths   of   a   point  
         十分之一点(例如输入 120, 表示大小为 12点)  
   
   
  It   automatically   converts   the   height   in   nPointSize   to   logical   units   using   the   CDC   object   pointed   to   by   pDC  
   
  它自动根据CDC将高度从 "点" 转换为逻辑单元  
   
  由此可见, 跟映射模式相关的Top

10 楼lastman001()回复于 2004-09-06 09:14:37 得分 0

upTop

11 楼weakwater(我是河南人)回复于 2004-09-06 17:56:57 得分 0

帮你UPTop

相关问题

  • CImageList.Create使用不解,为什么创建列表后的图片只有8位像素?
  • 生成水印图片是出现这个问题!(无法从带有索引像素格式的图像创建 Graphics 对象。)
  • CWnd创建
  • Pen的创建
  • 创建目录
  • 创建报表????
  • 创建表格
  • 创建文件
  • 动态创建......
  • 创建线程!!!

关键词

  • logfonttemp
  • csize
  • totalsize
  • t1
  • haha
  • addtomysize
  • pdc
  • crect
  • gettextextent
  • lie

得分解答快速导航

  • 帖主:lastman001

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo