导航:首页 > 文件教程 > gdi头文件

gdi头文件

发布时间:2023-02-14 17:13:38

㈠ MFC GDI+ effect class 如何使用

gdiplus.h里面也只是包含了一些头文件
GDI+是一套的跟GDI一套类似里面也有Pen,Brush,Color等绘图结构Gdi+里面的参数虽然跟GDI一样但是是不同的类Gdi+完全抛弃了GDI
里面的类型你要用GDI+必须有3个条件
1一套类库不只是gdiplus.h一共有32个头文件
放到vc6\vc98\mfc\src\include下
2 gdiplus.lib你已经有了放到library下
3 操作系统是XP以上或则你的系统目录下有gdiplus.dll;

基本条件有了就可以编程了
在stdAfx.h下

#define ULONG_PTR unsigned long*
#include "GDI\GdiPlus.h"
using namespace Gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")

ULONG_PTR是GDI初始化函数需要的类型
在使用前必须初始化网络编程一样。
建议放到InitiInstance下
GdiplusStartu(ULONG_PTR* , GdiplusStartupInput* ,
第3个参数设置NULL);
注意第一个参数设置为公共成员变量在退出函数里要释放需要这个参数。
在OnDestroy里面加入释放参数
GdiplusShutdown(ULONG_PTR);参数就是上面第一变量

Graphics 对象==CDC
一个实例比如
Graphics graphics(m_hWnd);

Image image("PatchName.png");

graphics.DrawImage(&image,0,0,image.GetWidth(),image.GetHeight());

㈡ vb 如何利用GDI+把程序内所有字体消锯齿

“消除锯齿”是指对绘制的图形和文本的粗糙边缘进行平滑处理以改进它们的外观或可读性。GDI+
既可以呈现高质量的消除锯齿的文本,也可以呈现低质量文本。GDI+提供多种文本呈现的质量等级。通常,呈现的质量越高,所需的处理时间越长。
质量等级是Graphics类的一个属性。若要设置质量等级,需要调用Graphics对象的SetTextRenderingHint方法。该方法接受一个TextRenderingHint枚举成员之一,该枚举定义在头文件Gdiplusenums.h中。
GDI+
既提供传统的
AntiAlias,也提供一种基于
Microsoft®
ClearType®
显示技术的新型
AntiAlias,后者只在Windows
XP

Windows
Server
2003中才可用。它可改善具有数字化界面的彩色
LCD
监视器(例如便携机的监视器和高质量纯平台式显示器)的可读性。还可稍微改善
CRT
屏幕的可读性。
ClearType

LCD
条纹的方向和顺序有关。目前,ClearType
只在顺序为
RGB
的垂直条纹中实现。如果您使用的是显示器可面向任何方向的
Tablet
PC,或者如果您使用的屏幕可从横向旋转到纵向,则这可能是需要考虑的事项。
下面的代码示例以两种不同的质量设置绘制文本:
FontFamily
fontFamily(L"Times
New
Roman");
Font
font(&fontFamily,
32,
FontStyleRegular,
UnitPixel);
SolidBrush
solidBrush(Color(255,
0,
0,
255));
WCHAR
string1[]
=
L"SingleBitPerPixel";
WCHAR
string2[]
=
L"AntiAlias";
graphics.SetTextRenderingHint();
graphics.DrawString(string1,
-1,
&font,
PointF(10.0f,
10.0f),
&solidBrush);
graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
graphics.DrawString(string2,
-1,
&font,
PointF(10.0f,
60.0f),
&solidBrush);

㈢ vc6怎样使用gdi+

去找这本书看看吧,[Visual.C++.范例开发大全].陈国建等.扫描版(ED2000.COM).pdf,

给你第六章源码vc6的

gdi+的头文件lib文件在gdiplus文件夹

㈣ GDI的GDI的特点

GDI 是C++中常用的一种图形图像工具,VB、Delphi等语言也移植了GDI ,.net的诸多语言甚至完全采用GDI作为绘制其界面。
在Windows系统下,几乎所有的API都是直接针对C语言的,除C/C++可直接使用这些API外,其它各种语言都必须移植这些API方法,而唯独GDI,微软提供的Gdiplus头文件,从类型定义到方法接口,都是针对C++写的,这就使得C语言没法使用这些面向对象的方法,即使是GDI提供的原始API,如果不重新定义其参数中众多的数据类型,C语言也是没法使用的。

㈤ VC++如何读取并显示JPG文件

用GDI+
添加Gdiplus.lib到工程中

头文件中添加
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long* //定义类型

#include "Gdiplus.h" //包含gdi头文件
using namespace Gdiplus; //命名空间

添加类成员变量

GdiplusStartupInput m_gdiPlusInPut;
ULONG_PTR m_gdiPlusToken;

构造函数中初始化GDI+

GdiplusStartup( &m_gdiPlusToken, &m_gdiPlusInPut, NULL );

析构函数中 //销毁GDI+

GdiplusShutdown(gdiplusToken);

OnPaint()中:

//CDialog::OnPaint();
CPaintDC dc( this );

//建立图形对象
Graphics mGraphics( dc.GetSafeHdc() );

//装入图像文件

Image img( L"./res/test.jpg", TRUE );

//在指定区域pdestPoints显示图像 (根据背景大小按比例缩放)

CRect rcClient;
GetClientRect( &rcClient );

BOOL bWidth = rcClient.Width() / img.GetWidth() > rcClient.Height() / img.GetHeight();
if ( bWidth )
{
mGraphics.DrawImage( &img, 0, 0, rcClient.Width(), rcClient.Width() * img.GetHeight() / img.GetWidth() );
}
else
{
mGraphics.DrawImage(&img, 0, 0, rcClient.Height() * img.GetWidth() / img.GetHeight(), rcClient.Height() );
}

//原始大小
mGraphics.DrawImage(&img, 0, 0, img.GetWidth(), img.GetHeight() );

㈥ gdi+函数库,应该怎样操作或调用头文件

就报出100多个错误,那是怎么回事- -,是我的电脑里面没GDI吗?不可能没有,那是Windows必备的dll。你加了我那三段语句了吗?怎么就一个:#include <GdiPlus.h>。新建的WIN32程序。不加这3句话运行没问题,在头文件中加了这3句话200多个错误了。最前面要加#include<windows.h>,它是最基本的头文件。记住:包含头文件,是要讲先后顺序的。一般windows.h都要在最前面。好吗?同学给的,采纳吧!!!!

㈦ GDI+中drawtriangle函数在哪个头文件中

---我记得是这个
using System.Drawing;
----如果不行就加这个
using System.Drawing.Drawing2D;

㈧ GDI+ 旋转后如何获取旋转后的图像

刚开始使用的是gdi保存cview中的绘图内容,但是发现由于保存的是位图所以保存下来的图片的大小很大,每个大概有2M左右,所以在网上找解决方法,选择使用GDI+来保存绘图为图片,大小为20K左右,主要过程如下
一,添加gdi相关文件
1,从网络上下载gdi头文件和库文件 http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip
2,解压之后将将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中;
3,将以下代码加入StdAfx.h头文件中:
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h "
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib ")
#endif
4,将gdiplus.dll考到debug和release目录下
二,在程序中加载库
1,在C*APP头文件中添加两个变量
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
2,在C*APP文件 的InitInstance函数中加入初始化GDI+的函数:
GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);
3,在C*APP文件 中添加ExitInstance()虚函数
在ExitInstance()虚函数中添加
GdiplusShutdown(m_gdiplusToken);
三使用GDI+ GDI+的使用很方便代码如下
CDC MemDC; //首先定义一个显示设备对象
CBitmap MemBitmap;//定义一个位图对象
MemBitmap.CreateCompatibleBitmap(pdc,nWidth,nHeight);
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(pdc);
//这时还不能绘图,因为没有地方画 ^_^
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小
//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色将位图清除干净,这里我用的是白色作为背景
//你也可以用自己应该用的颜色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));

CString filename;//名字
这里用MemDC绘图//
MemDC.move(0,0);
MemDC.lineto(100,100);
USES_CONVERSION; //将cstring转化为const wchar*
WCHAR* pBuf = T2W((LPCTSTR)filename);

//这里就是将内存中的绘图转化成图片了
Bitmap bm((HBITMAP)MemBitmap, NULL);//定义bitmap
CLSID pngClsid;
GetEncoderClsid(L"image/jpeg", &pngClsid);
bm.Save(pBuf, &pngClsid, NULL);
MemDC.DeleteDC();
其中GetEncoderClsid(const WCHAR* format, CLSID* pClsid)代码如下

int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
UINT num= 0;
UINT size= 0;
ImageCodecInfo* pImageCodecInfo= NULL;
GetImageEncodersSize(&num, &size);
if(size== 0)
{
return -1;
}
pImageCodecInfo= (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo== NULL)
{
return -1;
}
GetImageEncoders(num, size, pImageCodecInfo);
for(UINT j=0; j< num; ++j)
{
if(wcscmp(pImageCodecInfo[j].MimeType, format)== 0)
{
*pClsid= pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j;
}
}
free(pImageCodecInfo);
return -1;
}
该函数使用方法很方便,如下面的代码就分别获得5中图像编码器的CLSID
CLSID encoderClsid
GetEncoderClsid(L"image/png", &encoderClsid); //png
GetEncoderClsid(L"image/bmp", &encoderClsid);
GetEncoderClsid(L"image/gif", &encoderClsid);
GetEncoderClsid(L"image/jpeg", &encoderClsid);
GetEncoderClsid(L"image/tiff", &encoderClsid);

㈨ 如何查找自己想要的GDI函数.

图形和图像函数包含在graphics.h里面

(一) 像素函数
56. putpiel() 画像素点函数
57. getpixel()返回像素色函数
(二) 直线和线型函数
58. line() 画线函数
59. lineto() 画线函数
60. linerel() 相对画线函数
61. setlinestyle() 设置线型函数
62. getlinesettings() 获取线型设置函数
63. setwritemode() 设置画线模式函数
(三)、多边形函数
64. rectangle() 画矩形函数
65. bar() 画条函数
66. bar3d() 画条块函数
67. drawpoly() 画多边形函数
(四)、 圆、弧和曲线函数
68. getaspectratio()获取纵横比函数
69. circle()画圆函数
70. arc() 画圆弧函数
71. ellipse()画椭圆弧函数
72. fillellipse() 画椭圆区函数
73. pieslice() 画扇区函数
74. sector() 画椭圆扇区函数
75. getarccoords()获取圆弧坐标函数
(五)、 填充函数
76. setfillstyle() 设置填充图样和颜色函数
77. setfillpattern() 设置用户图样函数
78. floodfill() 填充闭域函数
79. fillpoly() 填充多边形函数
80. getfillsettings() 获取填充设置函数
81. getfillpattern() 获取用户图样设置函数
(六)、图像函数
82. imagesize() 图像存储大小函数
83. getimage() 保存图像函数
84. putimage() 输出图像函数

四、图形和图像函数
对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。
(一) 像素函数

56. putpixel() 画像素点函数
功能: 函数putpixel() 在图形模式下屏幕上画一个像素点。
用法: 函数调用方式为void putpixel(int x,int y,int color);
说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。
此函数相应的头文件是graphics.h
返回值: 无
例: 在屏幕上(6,8)处画一个红色像素点:
putpixel(6,8,RED);

57. getpixel()返回像素色函数
功能: 函数getpixel()返回像素点颜色值。
用法: 该函数调用方式为int getpixel(int x,int y);
说明: 参数x,y为像素点坐标。
函数的返回值可以不反映实际彩色值,这取决于调色板的设置情况(参见setpalette()函数)。
这个函数相应的头文件为graphics.h
返回值: 返回一个像素点色彩值。
例: 把屏幕上(8,6)点的像素颜色值赋给变量color。
color=getpixel(8,6);

(二) 直线和线型函数
有三个画直线的函数,即line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。
有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。

58. line() 画线函数
功能: 函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。
用法: 该函数调用方式为void line(int startx,int starty,int endx,int endy);
说明: 参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。
此函数相应的头文件为graphics.h
返回值: 无
例: 见函数60.linerel()中的实例。

59. lineto() 画线函数
功能: 函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。
用法: 此函数调用方式为void lineto(int x,int y);
说明: 参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。
该函数对应的头文件为graphics.h
返回值: 无
例: 见函数60.linerel()中的实例。

60.linerel() 相对画线函数
功能: 函数linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。
用法: 这个函数调用方式为void linerel(int dx,int dy);
说明: 参数dx,dy分别是水平偏移距离和垂直偏移距离。
函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。
返回值:无
例: 下面的程序为画线函数调用实例:
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
setcolor(15);
line(66,66,88,88);
lineto(100,100);
linerel(36,64);
getch();
restorecrtmode();
}

61. setlinestyle() 设置线型函数
功能: setlinestyle() 为画线函数设置当前线型,包括线型、线图样和线宽。
用法: setlinestyle() 函数调用方式为void setlinestyle(int stly,unsigned pattern,int width);
说明: 参数style为线型取值,也可以用相应名称表示,如表1-10中所示。
参数pattern用于自定义线图样,它是16位(bit)字,只有当style=USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0xFFFF,则画实线;pattern=0x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0xFF00和0xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。
参数wigth用来设定线宽,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。
若用非法参数调用setlinestyle()函数,那么graphresult()会返回错误代码,并且当前线型继续有效。
Turbo C提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。

表1-10 线型
-----------------------------------------------------
名 称 取 值 含 义
-----------------------------------------------------
SOLID_LINE 0 实线
DOTTED_LINE 1 点线
CNTER_LINE 2 中心线
DASHED_LINE 3 虚线
USERBIT_LINE 4 用户自定义线型
-----------------------------------------------------

表1-11 线宽
-----------------------------------------------------------
名 称 取 值 说 明
-----------------------------------------------------------
NORM_WIDTH(常宽) 1 一个像素宽(缺省值)
THICK_WIDTH(加宽) 3 三个像素宽
-----------------------------------------------------------

这个函数的头文件是graphics.h
返回值: 无
例: 下面的程序显示了BC中所提供的线型图样:
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
for(i=0;i<4;i++)
{
setlinestyle(i,0,1);
line(i*50,200,i*50+60,200)
}
getch();
restorecrtmode();
}

62. getlinesettings() 获取线型设置函数
功能: 函数getlinesettings() 用当前设置的线型、线图样和线宽填 写linesettingstype型结构。
用法: 函数调用方式为void getlinesettings(struct linesettingstype *info);
说明: 此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。
linesettingstype型结构定义如下:
struct linesettingstype {
int linestyle;
unsigned upattern;
int thickness;
};
其中linestyle用于存放线型,线型值为表1-10中的各值之一。
upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。
thickness为线宽值存放的变量,可参见表1-11。
getlinesettings()函数对应的头文件为graphics.h
返回值: 返回的线型设置存放在info指向的结构中。
例: 把当前线型的设置写入info结构:
struct linesettingstype info;
getlinesettings(&info);

63.setwritemode() 设置画线模式函数
功能: 函数setwritemode() 设置画线模式
用法: 函数调用方式为 void setwritemode()(int mode);
说明: 参数mode只有两个取值0和1,若mode为0,则新画的线将复盖屏幕上原有的图形,此为缺省画线输出模式。如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。
setwritemode()函数对应的头文件是graphics.h
返回值: 无
例: 设置画线输出模式为0:
setwritemode(0);

(三)、多边形函数
对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。下面直接介绍画多边形的函数。

64. rectangle() 画矩形函数
功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。
用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom);
说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。
这个函数对应的头文件为graphics.h
返回值: 无
例: 下面的程序画一些矩形实例:
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgrpah(&driver,&mode,"");
rectangle(80,80,220,200);
rectangle(140,99,180,300);
rectangle(6,6,88,88);
rectangle(168,72,260,360);
getch();
restorecrtmode();
}

65. bar() 画条函数
功能: 函数bar()用当前填充图样和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四条边线)。
用法: bar()函数调用方式为void bar(int left,int top,int right,int bottom);
说明: 参数left,topright,bottom分别为左上角坐标与右下角坐标,它们和调用函数rectangle()的情形相同,调用此函数前,可用setfillstyle()或setfillpattern()设置当前填充图样和填充色。
注意此函数只画没有边线的条形,如果要画有边线的的条形,可调用下面的函数bar3d()来画,并将深度参数设为0,同时topflag参数要设置为真,否则该条形无顶边线。
这 应的头文件为graphics.h
返回值: 无
例: 见函数bar3d()中的实例。

66.bar3d() 画条块函数
功能: 函数bar3d() 使用当前绘图色、线型及线宽画出三维长方形条块,并用当前填充图样和填 充色填充该三维条块的表面。
用法: 此函数调用方式为void bar3d(int left,int top,int right,int bottom,int depth,int topflag);
说明: 参数left,top,right,bottom分另为左上角与右下角坐标,这与bar()函数中的一样。参数depth为条块的深度,以像素为单位,通常按宽度的四分之一计算。深度方向通过屏显纵横比调节为约45度(即这时x/y比设置为1:1)。
参数topflag相当于一个布尔参数,如果设置为1(真)那么条块上放一顶面;若设置为0(假),则三维条形就没有顶面,这样可使多个三维条形叠加在一起。
要使图形更加美观,可利用函数floodfill()或setfillpattern()来选择填充图样和填充色(参见本小节(五)填充函数 )。
bar3d()函数对应的头文件为graphics.h
返回值: 无
例: 下面的程序画一个条形和条块:
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
setfillstyle(SOLID-FILL,GREEN);
bar(60,80,220,160);
setfillstyle(SOLID-FILL,RED);
bar3d(260,180,360,240,20,1);
getch();
restorecrtmode();
}

67. drawpoly() 画多边形函数
功能: 函数drawpoly() 用当前绘图色、线型及线宽,画一个给定若干点所定义的多边形。
用法: 此函数调用方式为void drawpoly(int pnumber,int *points);
说明: 参数pnumber为多边形的顶点数;参数points指向整型数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,x坐标值在前。显然整型数组的维数至少为顶点数的2倍,在定义了多边形所有顶点的数组polypoints时,顶点数目可通过计算sizeof(polypoints)除以2倍的sizeof(int)得到,这里除以2倍的原因是每个顶点有两个整数坐标值。另外有一点要注意,画一个n个顶点的闭合图形,顶点数必须等于n+1,并且最后一点(第n+1)点坐标必须等于第一点的坐标。
drawpoly()函数对应的头文件为grpahics.h
返回值: 无
例: 下面的程序画一个封闭星形图与一个不封闭星形图:
#i nclude<graphics.h>
void main()
{
int driver,mode;
static int polypoints1[18]={100,100,110,120,100,130,120,125,140,140,130,120,
140,110,120,115,100,100};
static int polypoints2[18]={180,100,210,120,200,130,220,125,240,140,230,120,
240,110,220,115,220,110};
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
drawpoly(9,polypoints1);
drawpoly(9,polypoints2);
getch();
restorecrtmode();
}

(四)、 圆、弧和曲线函数
在一个屏幕上画得很圆的图形到另一个屏幕上可能被压扁或拉长,这是因为每一种显示卡与之相应的显示模式都有一个纵横比。纵横比是指像素的水平方向大小与垂直方向大小的比值。如VGA显示卡由于偈素基本上是正方形,所以纵横比为1.000。
为了保证几何图形基本按预计情况显示在屏幕上,用屏显的纵横比来计算和纠正不同硬件及显示卡产生的畸变。计算纵横比所需要的水平方向和垂直方向的比例系数可调用函数getaspectratio()获得。

68. getaspectratio()获取纵横比函数
功能: 函数getaspectratio()返回x方向和y方向的比例系数,用这两个整型值可计算某一特定屏显的纵横比。
用法: 此函数调用方式为void getaspectratio(int xasp,int yasp);
说明: 参数xasp指向的变量存放返回的x方向比例系数;参数yasp指向的变量存放返回的y方向比例系数。通常y方向比例系数为10 000, x方向比例系数不大于10 000(这是因为大多数屏幕像素高比宽长)。
注意纵横比自动用作下面函数arc(),circle()和pieslice()中的标尺因子,使屏幕上圆或弧正常显示。但用ellipse()函数画椭圆必须调用本函数获取纵横比作为标尺因子,否则不予调整。纵横比可用于其它几何图形,目的是校正和显示图形。
getaspectratio()函数对应的头文件为graphics.h
返回值: 返回x与y方向比例系数分别存放在xasp和yasp所指向的变量中。
例: 下面的程序显示纵横比:
int xasp,yasp;
float aspectratio;
getaspectratio(&xasp,&yasp);
aspectratio=xasp/yasp;
printf("aspect ratio: %f",aspectratio);

69. circle()画圆函数
功能: 函数circle()使用当前绘图色并以实线画一个完整的圆。
用法:该函数调用方式为void circle(int x,int y,int radius);
说明: 参数x,y为圆心坐标,radius为圆半径,用像素个素表示。注意,调用circle()函数画圆时不用当前线型。
不同于ellipse()函数,只用单个半径radius参数调用circle()函数,故屏显纵横比可以自动调节,以产生正确的显示图。
此函数对应的头文件为graphics.h
返回值: 无
例: 画六个同心圆,圆心在(100,100)。
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
circle(100,100,10);
circle(100,100,20);
circle(100,100,30);
circle(100,100,40);
circle(100,100,50);
circle(100,100,60);
getch();
restorecrtmode();
}

70. arc() 画圆弧函数
功能: 函数arc()使用当前绘图色并以实线画一圆弧。
用法: 函数调用方式为void arc(int x,int y,int startangle,int endangle,int radius);
说明: 参数x,y为圆心坐标,startangle与endangle分别为起始角与终止角,radius为半径。圆心坐标和半径以像素个数给出,起始角和终止角以度为单位,0度位于右边,90度位于顶部,180度位于左边,底部是270度。同往常一样,360度与0度重合。角度按逆时针方向增加,但并不要求终止角一定比起始角大。例如指定300度和90度分别为起始角和终止角,与指定300度和450度分别为起始角和终止角可画出相同的弧。大于360度可作为参数,它将被化到0度 ̄360度范围里。函数arc()能画封闭圆,只要取起始角为0度,终止角为360度即可。此函数中,屏显纵横比可自动调节。
arc()函数对应的头文件为graphics.h
返回值: 无
例: 以(200,200)为圆心,100为半径,从0度到120度画圆弧:
#i nclude<graphics.h
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgraph(&drivwer,&mode,"");
setcolor(WHITE);
arc(200,200,0,120,100);
getch();
restorecrtmode();
}

㈩ GDI+ 文字输出

CString 是 MFC 的东西,转换成WCHAR,要用 A2W,或 T2CW。头文件#include <atlconv.h>
编译时,要含路径:
C:\Program Files\Microsoft Visual Studio\VC98\ATL\Include
------------------------------------------------------------
CString str("Test");
WCHAR buf[1024]; // 或自己动态分配
USES_CONVERSION; // 必须有这句
wcscpy(buf, A2W((LPCSTR)str)); // 转换,也可用 wcsncpy
如果用SDK:
Font myFont(L"Arial", 16);
PointF origin(0.0f, 0.0f);
SolidBrush blackBrush(Color(255, 0, 0, 0));
// DrawString 有几种参数设法,例如
graphics.DrawString(
buf,
wcslen(buf),
&myFont,
origin,
&blackBrush);

阅读全文

与gdi头文件相关的资料

热点内容
java高低字节 浏览:105
win10安全模式也死机 浏览:159
最简单的数据库开发软件 浏览:718
迅雷下载网络断开 浏览:792
考勤系统数据库在哪个文件夹 浏览:134
creo30绘图配置文件设置 浏览:624
苹果ID被锁要交600元交不交 浏览:29
实例化module配置文件失败 浏览:872
网站源码是什么东西 浏览:90
怎样打开桌面隐藏文件 浏览:904
拯救者的颜色配置文件 浏览:860
微信转发朋友圈送礼品 浏览:905
新电脑装win10教程 浏览:130
linux文件执行授权 浏览:618
微信文件如何删除重新打开 浏览:897
删了他微信他又来加 浏览:283
苹果备忘录文件夹备份 浏览:233
手机查看db文件 浏览:248
银卡app密码怎么改 浏览:995
winxp无线网络显示红叉 浏览:71

友情链接