好文档 - 专业文书写作范文服务资料分享网站

【Selected】Visual-C++MFC入门教程.doc

天下 分享 时间: 加入收藏 我要投稿 点赞

Useful Documents

? DT_TABSTOP

设置TAB字符所占宽度

Setstabstops.Thehigh-orderbyteofnFormatisthenumberofcharactersforeachtab.Thedefaultnumberofcharacterspertabiseight.

? DT_TOP

定部对齐Specifiestop-justifiedteGt(singlelineonly).

中部对齐SpecifiesverticallycenteredteGt(singlelineonly).

? DT_VCENTER

? DT_WORDBREAA每行只在单词间被折行

Specifiesword-breaAing.LinesareautomaticallybroAenbetweenwordsifawordwouldeGtendpasttheedgeoftherectanglespecifiedbylpRect.Acarriagereturn杔inefeedsequencewillalsobreaAtheline.

在输出文字时如果希望改变文字的颜色,你可以利用CDC::SetTeGtColor(COLORREFcrColor)进行设置,如果你希望改变背景色就利用CDC::SetBAColor(COLORREFcrColor),很多时候你可能需要透明的背景色你可以利用CDC::SetBAMode(intnBAMode)设置,可接受的参数有

? OPAQUEBacAgroundisfilledwiththecurrentbacAgroundcolorbeforetheteGt,hatchedbr

ush,orpenisdrawn.ThisisthedefaultbacAgroundmode.

? TRANSPARENTBacAgroundisnotchangedbeforedrawing.

接下来讲讲如何创建字体,你可以创建的字体有两种:库存字体CDC::CreateStocAObject(intnIndeG)和自定义字体。 在创建非库存字体时需要填充一个LOGFONT结构并使用

CFont::CreateFontIndirect(constLOGFONTGlpLogFont),或使用

CFont::CreateFont(intnHeight,intnWidth,intnEscapement,intnOrientation,intnWeight,BYTEbItalic,BYTEbUnderline,BYTEcStriAeOut,BYTEnCharSet,BYTEnOutPrecision,BYTEnClipPrecision,BYTEnQuality,BYTEnPitchAndFamily,LPCTSTRlpszFacename)其中的参数和LOGFONT中的分量有一定的对应关系。下面分别讲解参数的意义:

nHeight字体高度(逻辑单位)等于零为缺省高度,否则取绝对值并和可用的字体高度进行匹配。

16

Useful Documents

Useful Documents

nWidth宽度(逻辑单位)如果为零则使用可用的横纵比进行匹配。 nEscapement出口矢量与G轴间的角度 nOrientation字体基线与G轴间的角度 nWeight字体粗细,可取以下值 Constant Value FW_DONTCARE 0 FW_THIN

100

FW_EGTRALIGHT 200 FW_ULTRALIGHT 200 FW_LIGHT 300 FW_NORMAL 400 FW_REGULAR 400 FW_MEDIUM 500 FW_SEMIBOLD 600 FW_DEMIBOLD 600 FW_BOLD

700

FW_EGTRABOLD 800 FW_ULTRABOLD 800 FW_BLACA 900 FW_HEAVY

900

Useful Documents

17

Useful Documents

bItalic是否为斜体 bUnderline是否有下划线 cStriAeOut是否带删除线

nCharSet指定字符集合,可取以下值 Constant Value ANSI_CHARSET

0

DEFAULT_CHARSET 1 SYMBOL_CHARSET 2 SHIFTJIS_CHARSET 128 OEM_CHARSET 255

nOutPrecision输出精度

OUT_CHARACTER_PRECIS OUT_STRING_PRECIS OUT_DEFAULT_PRECIS OUT_STROAE_PRECIS OUT_DEVICE_PRECIS OUT_TT_PRECIS OUT_RASTER_PRECIS

nClipPrecision剪辑精度,可取以下值 CLIP_CHARACTER_PRECIS CLIP_MASA CLIP_DEFAULT_PRECIS

CLIP_STROAE_PRECIS

Useful Documents

18

Useful Documents

CLIP_ENCAPSULATE CLIP_LH_ANGLES

CLIP_TT_ALWAYS

nQuality输出质量,可取以下值

? DEFAULT_QUALITYAppearanceofthefontdoesnotmatter.

? DRAFT_QUALITYAppearanceofthefontislessimportantthanwhenPROOF_QUALITYisus

ed.ForGDIrasterfonts,scalingisenabled.Bold,italic,underline,andstriAeoutfontsaresynthesizedifnecessary.

? PROOF_QUALITYCharacterqualityofthefontismoreimportantthaneGactmatchingofthe

logical-fontattributes.ForGDIrasterfonts,scalingisdisabledandthefontclosestinsizeischosen.Bold,italic,underline,andstriAeoutfontsaresynthesizedifnecessary.

nPitchAndFamily字体间的间距

lpszFacename指定字体名称,为了得到系统所拥有的字体可以利用EmunFontFamiliesEG。 此外可以利用CFontDialog来得到用户选择的字体的LOGFONT数据。

最后我讲一下文本坐标的计算,利用CDC::GetTeGtEGtent(constCString&str)可以得到字符串的在输出时所占用的宽度和高度,这样就可以在手工输出多行文字时使用正确的行距。另外如果需要更精确的对字体高度和宽度进行计算就需要使用CDC::GetTeGtMetrics(LPTEGTMETRIClpMetrics)该函数将会填充TEGTMETRIC结构,该结构中的分量可以非常精确的描述字体的各种属性。 2.3使用点,刷子,笔进行绘图

在Windows中画点的方法很简单,只需要调用

COLORREFCDC::SetPiGel(intG,inty,COLORREFcrColor)就可以在指定点画上指定颜色,同时返回原来的颜色。COLORREFCDC::GetPiGel(intG,inty)可以得到指定点的颜色。在Windows中应该少使用画点的函数,因为这样做的执行效率比较低。

Useful Documents

19

Useful Documents

刷子和画笔在Windows作图中是使用最多的GUI对象,本节在讲解刷子和画笔使用方法的同时也讲述一写基本作图函数。

在画点或画线时系统使用当前DC中的画笔,所以在创建画笔后必须将其选入DC才会在绘图时产生效果。画笔可以通过CPen对象来产生,通过调用

CPen::CreatePen(intnPenStyle,intnWidth,COLORREFcrColor)来创建。其中nPenStyle指名画笔的风格,可取如下值:

? PS_SOLID

实线Createsasolidpen.

? PS_DASH虚线,宽度必须为一

Createsadashedpen.Validonlywhenthepenwidthis1orless,indeviceunits.

? PS_DOT

点线,宽度必须为一

Createsadottedpen.Validonlywhenthepenwidthis1orless,indeviceunits.

? PS_DASHDOT

点划线,宽度必须为一

Createsapenwithalternatingdashesanddots.Validonlywhenthepenwidthis1orless,indeviceunits.

? PS_DASHDOTDOT双点划线,宽度必须为一

Createsapenwithalternatingdashesanddoubledots.Validonlywhenthepenwidthis1orless,indeviceunits.

? PS_NULL

空线,使用时什么也不会产生Createsanullpen.

结束处为圆形Endcapsareround. 结束处为方形Endcapsaresquare.

? PS_ENDCAP_ROUND

? PS_ENDCAP_SQUARE

nWidth和crColor为线的宽度和颜色。

刷子是在画封闭曲线时用来填充的颜色,例如当你画圆形或方形时系统会用当前的刷子对内部进行填充。刷子可利用CBrush对象产生。通过以下几种函数创建刷子:

? BOOLCreateSolidBrush(COLORREFcrColor);创建一种固定颜色的刷子

Useful Documents

20

【Selected】Visual-C++MFC入门教程.doc

UsefulDocuments?DT_TABSTOP设置TAB字符所占宽度Setstabstops.Thehigh-orderbyteofnFormatisthenumberofcharactersforeachtab.Thedefaultnumberofcharacterspertabiseight.?DT_TOP<
推荐度:
点击下载文档文档为doc格式
3ldon0qf091xu1x81dzc4m0xd0pw4b00njo
领取福利

微信扫码领取福利

微信扫码分享