黑客手册第五课 学习更多关于“绘制”文本串的知识.docxVIP

  • 7
  • 0
  • 约4.96千字
  • 约 5页
  • 2017-07-31 发布于河南
  • 举报

黑客手册第五课 学习更多关于“绘制”文本串的知识.docx

黑客手册第五课 学习更多关于“绘制”文本串的知识

黑客手册第五课学习更多关于“绘制”文本串的知识我们将做更多的实践去了解有关文本的诸多属性如字体和颜色等。例子理论:Windows 的颜色系统是用RGB值来表示的,R代表红色,G代表绿色,B代表兰色。如果您想指定种颜色就必须给该颜色赋相关的RGB值,RGB 的取值范围都是从0 到255,譬如您想要得到纯红色,就必须对RGB赋值(255,0,的,纯白色是(255,255,255) 。从我们下面的例子中您可以看出来要想运用好这套基于数字的颜色系统并不容易J主要求fg必须对混色和颜色匹配有良好的感觉。您可以用函数SetTextColor和SetBkColor来绘制背景色和字符颜色,但是必须传递个设备环境的句柄和RGB 值作为参数。RGB的结构体的定义如下:RGB valuestructunused db0bluedb?green db?reddb?RGB valueends其中第字节为。而且始终为0,其它三个字节分别表示兰色、绿色和红色,刚好和RGB 的次序相反。这个结构体用起来挺别扭,所以我们重新定义个宏用它来代替。该宏接收红绿蓝三个参数,并在eax寄存器中返回32 位的RGB 值,宏的定义如下:RGB macrored,green,blue xoreax,eaxmovah,blue shleax,8movah,green moval,red endm您可以把该宏放到头文件中以方便使用。您可以调用CreateFont和CreateFontlndirect来创建自己的字体,这两个函数的差别是前者要求您传递系列的参数,而后着只要传递个指向LOGFONT 结构的指针。这样就使得后者使用起来更方便,尤其当您需要频繁创建字体时。在我们的例子中由于只要创建种字体,故用CreateFont就足够了。在调用该函数后会返回所创建的字体的句柄,然后把该句柄选进设备环境使其成为当前字体,随后所有的绘制文本串的函数在被调用时都要把该句柄作为一个参数传递例子:ρ3unbo8t6modl1daer1m1m11tnononnflat,stdcall0000option.vvvvvvcasemap:noneLKLKρlulunLKeeoeeIWinMainproItnbhnbmWEoeTlea-x:DWORD,:DWORD,:DWORD,:DWORDtntnn-MscdMtlaeTLaTisinclude\rr阻sm32\otoLapitdam--rnclude\windows.incinclude\rr阻sm32\inunmnnoc-iρundρuρulude\user32.incinclude\rr阻sm32\inceeneHudehsde\kerne132.incinclude\rr阻sm32\includnea1xn\tdxnsegdi32.inckernincludelib\rr阻sm32\lib\us--ρU+Lndeaxr32.1ib includelib\rr阻sm32\lib\neCN1e32.1ibincludelib\rr阻sm32\lib\gdi32.n1uibTLRGBmacrored,green,bluexoreax,eaxmovah,blueshleax,8movah,greenmoval,redendm.dataClassNamedbSimpleWinClass,OAppNamedbOurFirstWindow,。TL,ρlvOIImn(iTL-ne,n、以wwnu口unuwwhυA扣pu们TestStringdbWin32assemblyisgreatandeasy!,0AAUTLFontNamedbscript,OTI.data?hlnstanceHINSTANCE? Comrr阻ndLineLPSTR?WinMainprochlnst:HINSTANCE,hPrevlnst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORDLOCALwc:WNDCLASSEXLOCALmsg:MSGLOCALhwnd:因NNDmovwc.cbSize,SIZEOF啊DCLASSEXmovwc.style,CSHREDRAWorCSVREDRAWmovwc.lpfnWndProc,OFFSETWndProcmovwc.cbClsExtra,NULLmovwc.cbWndExtra,NULLpushhlnstpopwc.hlnstancemovwc.hbrBackground,COLORWINDOW+lmovwc.1pszMenuName,NULLmovwc.1pszC1assName,OFFSETC1assName invokeLoadlcon,NULL,IDIAPPLICATIONmovwc.hlcon,eaxm

文档评论(0)

1亿VIP精品文档

相关文档