Font与LOGFont.doc_第1页
Font与LOGFont.doc_第2页
Font与LOGFont.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Font与LOGFont、HFont是什么关系,如何建立联系(2008-11-25 12:36:34)CFontftFolders;CFontftItems;CFontftHotItems;LOGFONT lf;HFONT hf = (HFONT) GetStockObject(DEFAULT_GUI_FONT);CFont * gf = CFont:FromHandle(hf);gf-GetLogFont(&lf);lf.lfUnderline = TRUE;ftHotItems.CreateFontIndirect(&lf);lf.lfUnderline = FALSE;ftItems.CreateFontIndirect(&lf);lf.lfWeight = FW_SEMIBOLD;ftFolders.CreateFontIndirect(&lf);lf.lfHeight = 20;ftCaption.CreateFontIndirect(&lf);*LOGFONT: 一个结构,用来逻辑上表达一个字体,比如LOGFONT.lfFaceName是字体的名字HFONT: 一个句柄,相当于表示内存中的一个字体对象,它可以马上拿来用CFont: 是mfc对于HFONT的一种封装 可以说LOGFONT是一种墨水的名字,比如英雄牌,比较抽象 而HFONT表示实实在在的一瓶墨水,打开瓶盖就可以用 CFont只是把一瓶墨水外面包了一层纸,其实它还是一瓶墨水*当你需要简单的使用字体就是用CFont 如果需要定义字体的各个小的细节等复杂的字体就用LOGFONT HFONT可以是他们两个相互之间发生联系*请问CFont:GetLogFont(LOGFONT* logFont)该怎么用? CFont *pFont = new CFont; LOGFONT logfont; pFont-GetLogFont(&logfont); 为什么不对?PatrickGamp是对的,至少要这样: CFont *pFont = new CFont; pFont-CreateFont(. /填的参数很多:( LOGFONT logFont; pFont-GetLogFont(&logFont)/得到刚刚在Create里填的东东 LOGFONT logfont; lstrcpy(LPSTR)logfont.lfFaceName,(LPSTR)楷体_GB2312); logfont.lfWeight=700; logfont.lfWidth=20; logfont.lfHeight=50; logfont.lfEscapement=0; logfont.lfUnderline=FALSE; logfont.lfItalic=FALSE; logfont.lfStrikeOut=FALSE; logfont.lfCharSet=GB2312_CHARSET; /以上参数好像一个都不能少 pFont-CreateFontIndirect(&logfont); /行了,这下就有内容了。可以拿来用了。可以用CWnd:GetFont得到当前窗口的font。*1.CDC *pDC和HDC hdc有什么不同,类似的有CWnd *pWnd和HWnd?pDC是类指针HDC是windows句柄通过pDC获得hdc:HDChdc=pDC-GetSafeHdc();通过hdc获得pDC:CDC*pDC=newCDC;pDC-Attach(hdc);2.hDC和CDC有本质区别 HDC是WINDOWS的一种数据类型,是设备描述句柄。而CDC是MFC里的一个类,它封装了几乎所有的关于HDC的操作。也可以这样说,HDC定义的变量指向一块内存,这块内存用来描述一个设备的相关的内容,所以也可以认为HDC定义的是一个指针;而CDC类定义一个对象,这个对象拥有HDC定义的一个设备描述表,同时也包含与HDC相关的操作的函数。这与HPEN和CPen,POINT与CPoint之间的差别是一样的。CDC是对hDC的相关操作进行封装,例如CDC的一个TextOut函数隐去其错误检测,完全可以简化到这样程度CDC:TextOut(intx,inty,constCString&str)TextOut(m_hDC,x,y,(LPCTSTR)str,str.GetLength();m_hDC就是CDC的成员变量HDCm_hDC; CDC有一个operatorHDC()constreturnm_hDC;你可以把它当成一个HDC使用3。this是dc输出目标窗口的指针,通过它可以得到窗口句柄,对象带参构造这有什么奇怪的呢? CPaintDC 无效区dc,相当于BeginPaint, EndPaint CClien

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论