vs2010中如何输出图形

作者&投稿:诏蔡 (若有异议请与网页底部的电邮联系)
如何用VS2010绘制图像~

前提你要清楚你要画什么图形,折线?饼状?柱形图?。
然后你用的啥语言?如果是直接代码绘图的话,C/C++用GDI画,C#用 System.Drawing 里面的Graphic类画,具体你要学过。如果你会一些图形库就更好了。

两种方式:
一种是获取当前窗口的DC: CDC *pDc =GetDC(); 然后用这个DC 绑定一个图片,把图片绘制到相应位置。
第二种拖上去一个CPicture控件,在属性中选择一张照片,点击Button的时候控制CPicture控件的显示和隐藏。

我这有几个函数你看看

CreateCompatibleDC

函数功能

该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联。

函数原型

HDC CreateCompatibleDC(HDC hdc);

参数

hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。

返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NULL。

Windows NT:若想获得更多错误信息,请调用GetLastError函数。

注释:内存设备上下文环境是仅在内存中存在的设备上下文环境,当内存设备上下文环境被创建时,它的显示界面是标准的一个单色像素宽和一个单色像素高,在一个应用程序可以使用内存设备上下文环境进行绘图操作之前,它必须选择一个高和宽都正确的位图到设备上下文环境中,这可以通过使用CreateCompatibleBitmap函数指定高、宽和色彩组合以满足函数调用的需要。

当一个内存设备上下文环境创建时,所有的特性都设为缺省值,内存设备上下文环境作为一个普通的设备上下文环境使用,当然也可以设置这些特性为非缺省值,得到它的特性的当前设置,为它选择画笔,刷子和区域。

CreateCompatibleDc函数只适用于支持光栅操作的设备,应用程序可以通过调用GetDeviceCaps函数来确定一个设备是否支持这些操作。

当不再需要内存设备上下文环境时,可调用DeleteDc函数删除它。

ICM:如果通过该函数的hdc参数传送给该函数设备上下文环境(Dc)对于独立颜色管理(ICM)是能用的,则该函数创建的设备上下文环境(Dc)是ICM能用的,资源和目标颜色间隔是在Dc中定义。

CreateCompatibleBitmap

函数功能:该函数创建与指定的设备环境相关的设备兼容的位图。

函数原型:HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight);

参数:

hdc: 设备环境句柄。

nWidth:指定位图的宽度,单位为像素。

nHeight:指定位图的高度,单位为像素。

返回值:如果函数执行成功,那么返回值是位图的句柄;如果函数执行失败,那么返回值为NULL。若想获取更多错误信息,请调用GetLastError。

备注:由CreateCompatibleBitmap函数创建的位图的颜色格式与由参数hdc标识的设备的颜色格式匹配。该位图可以选入任意一个与原设备兼容的内存设备环境中。由于内存设备环境允许彩色和单色两种位图。因此当指定的设备环境是内存设备环境时,由CreateCompatibleBitmap函数返回的位图格式不一定相同。然而为非内存设备环境创建的兼容位图通常拥有相同的颜色格式,并且使用与指定的设备环境一样的色彩调色板。

fillsolidrect

void FillSolidRect(

int x,

int y,

int cx,

int cy,

COLORREF clr

);

参数:

lpRec
指向RECT数据结构的指针,包含被填充的矩形的逻辑坐标,可以为该参数传递RECT数据结构或CRect对象的指针。

clr
指定填充矩形使用的颜色。

x
矩形左上角的X逻辑坐标。

y
矩形左上角的Y逻辑坐标。

cx
指定矩形的宽度。

cy
指定矩形的高度。

说明:

调用该成员函数用指定的固体色填充矩形。

FillSolidRect与CDC::FillRect类似,FillSolidRect只能使用固体色(由COLORREF参数决定)。但FillRect带有画刷,因此可以为矩形填充固体色、抖动色、阴影或使用调色板。FillRect通常比FillSolidRect慢。

注意:调用FillSolidRect时,以前用SetBkColor设置的背景色,被设置为clr指定的颜色。

Detach

detach()函数:

MFC类里CMENU类的成员函数。功能是切断一个CWnd对象和一个有效窗口的联系。

由于WNDCLASS其实和CWnd根本没有什么关系,它们之间只是通过CWnd的成员HWND联系起来的。Detach的作用是切断一个CWnd对象和一个有效窗口的联系。因为CWnd是C++的对象,C++的对象有一个生存期的概念,脱离了该对象的作用域,这个对象就要被销毁,但是Windows对象没有这个特点,当销毁CWnd对象的时候,我们不一定希望WNDCLASS一起被销毁,那么在此之前,我们就先要把这个联系切断。

当我们建立了一个局部的菜单对象后,比如 在一个窗口类的函数里建立了一个局部菜单对象,当这个窗口函数的生命周期结束时,如果不希望菜单对象也被销毁,就要用detach()函数把菜单句柄和这个菜单对象分离。这样,当局部的菜单对象被销毁时,它不会销毁一个它不具备拥有权的菜单。

GetClientRect
函数功能

该函数获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对子窗口客户区的左上角而言的,因此左上角坐标为(0,0)

函数原型

在Win32 SDK, 该API函数原型为

BOOL GetClientRect(

HWND hWnd, // 窗口句柄

LPRECT lpRect // 客户区坐标

);

在MFC中,该函数的原型为void GetClientRect(LPRECT lpRect) const;

参数

hWnd

[输入]是程序窗口的句柄。

lpRect

[输出]是一个指针,指向一个RECT类型的rectangle结构。该结构有四个LONG字段,分别为left、top、right和bottom。GetClientRect将这四个字段设定为窗口显示区域的尺寸。left和top字段通常设定为0。right和bottom字段设定为显示区域的宽度和高度(像素点数)。 也可以是一个CRrect对象指针。CRect对象有多个参数,与RECT用法相同。

返回值

如果函数成功,返回一个非零值。

如果函数失败,返回零。要得到更多的错误信息,请使用GetLastError函数。

BitBlt

函数功能

该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。

函数原型

BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);

参数

hdcDest:指向目标设备环境的句柄。

nXDest:指定目标矩形区域左上角的X轴逻辑坐标。

nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。

nWidth:指定源和目标矩形区域的逻辑宽度。

nHeight:指定源和目标矩形区域的逻辑高度。

hdcSrc:指向源设备环境的句柄。

nXSrc:指定源矩形区域左上角的X轴逻辑坐标。

nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。

dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。

下面列出了一些常见的光栅操作代码:

BLACKNESS:表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。

DSTINVERT:表示使目标矩形区域颜色取反。

MERGECOPY:表示使用布尔型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。

MERGEPAINT:通过使用布尔型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。

NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。

NOTSRCERASE:使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。

PATCOPY:将特定的模式拷贝到目标位图上。

PATPAINT:通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。

PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。

SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。

SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。

SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。

SRCINVERT:通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。

SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。

WHITENESS:使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。

返回值

如果函数成功,那么返回值非零;如果函数失败,则返回值为零。

SetClassLong

函数功能:该函数替换在额外类存储空间的指定偏移地址的32位长整型值,或替换指定窗口所属类的WNDCLASSEX结构。

函数原型:DWORD SetClassLong(HWND hWnd,int nlndex,LONG dwNewLong);

参数:

hWnd:窗口句柄及间接给出的窗口所属的类。

nlndex:指定将被替换的32位值。在额外类存储空间中设置32位值,应指定一个大于或等于0的偏移量。

有效值的范围从0到额外类的存储空间的字节数一4;例如,若指定了12个字节或多于12个字节的额外类存储空间,则索引值为8时,对应的是第三个32位整数值。要设置WNDCLASSEX结构中的任何值,指定下面索引之一:

GCL_CBCLSEXTRA:设置与类相关的尺寸的字节大小。设定该值不改变己分配的额外字节数。

GCL_CBWNDEXTRA:设置与类中的每一个窗口相关的尺寸的字节大小。设定该值不改变已分配额外字节数。查看如何进入该内存,参看SetWindowLOng。

GCL_HBRBACKGROUND:替换与类有关的背景刷子的句柄。

GCL_HCURSOR:替换与类有关的光标的句柄。GCL_HICON:替换与类有关的图标的句柄。

GCL_HMODULE:替换注册类的模块的句柄。GCL_STYLE:替换窗口类的风格位。

GCL_MENUNAME :替换菜单名字符串的地址。该字符串标识与类有关的菜单资源。

GCL_WNDPROC :替换与窗口类有关的窗口过程的地址。

dwNewLong:指定的替换值。

返回值:如果函数成功,返回值是原来类结构中32位整数;如果未事先设定,返回值为0。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。

备注;如果使用SetClassLong函数和GCL_WNDPROC索引值来替换窗口过程,新的窗口过程必须与WindowProc回调函数中所规定的规则一致。

以带GCL_WNDPROC索引值的SetClassLong函数修改的一个窗口类的的子类将会影响所有随后以该类创建的窗口。应用程序可以创建一个系统类的子类,但是不能创建由其他进程创建的类的子类。

通过使用RegisterClassEx函数将WNDCLASSEX结构中的cbWndExtra单元指定为一个非零值来保留额外的的类存储空间。

使用SetClassLong函数要小心。例如,可以通过使用SetClassLong来改变类的背景颜色,但是这种改变不会马上生效,直到属于该类的窗体下次重绘,除非使用UpdateWindow()强迫窗体更新。

Windows CE:nlndex参数是一个字节偏移量但必须是4的倍数。Unaligned不支持。

不支持在nlndex参数中的标准的CGL_★值,只有一个例外,如果目标设各支持鼠标,则可以在nlndex参数中指定CGL_HCURSOR。


富士施乐S2010恢复出厂设置
富士施乐S2010恢复出厂设置?感兴趣的小伙伴一起看看吧 按“0” 5秒不放,再按“启动”。输入6789,再按“启动。 出厂设置即物品出厂时的默认状态,如开始界面,待机方式,操作快捷键,定时提醒等功能恢复但不会删除存储的数据。1,按“0” 5秒不放,再按“启动”2,输入6789,再按“启动”就可以...

请问富士施乐打印机S2010如何查询打印页数
按住登入键几秒 然后屏幕显示6个“-”的时候就输入5个1 点启动然后屏幕会显示一个P,继续输入5个1点启动再输入202按启动键再输入5按启动键打印报告就出来了,\/\/\/简单点的长按登入,按11111启动,按11111,启动按202,启动按5 希望能给你帮助 ...

在word2010公式中,上标怎么打
如何点出公式编辑器里面的上标下标首先我们打开Word文档,进入到编辑页面中。然后我们点击打开插入中的“公式”。然后我们在弹出来的窗口中点击打开“上下标”,选择上标样式,之后即可输入上标了。打开公式编辑器。进入公式编辑器之后,进行公示编辑,公示编辑完毕,选中需要改变大小的上下标。选中需要改变的上...

如何在excel2010中输入大于符号?
1、首先打开一个EXCEL表格,如下图所示:2、查看电脑最下方工具栏上输入法的状态,切换到全角状态,如下图所示:3、接着按住键盘上的“>“和“SHIFT“键,如下图所示:4、表格里打出了“》”远大于符号。同理,在别的地方用此方法也能打出来,如下图所示:

富士施乐打印机s2010怎样加深打印复印浓度
1、首先在打印机面板上按一些打印机的电源键,启动打印机就可以了,如图所示。2、然后需要按一下电源键,等待打印机启动,如图所示。3、等到打印机启动后,在面板找到启动按钮即可。4、接下来就可以按下浓度按钮,进入浓度设置界面了,见下图所示。5、这个时候在打印机的控制面板上有一个方向键按钮,...

Word2010如何输入S上面正中间有一个小帽子
这个需要用插入字符, 选Time New Roman 中, 子集-拉丁语扩充-A中可以找到 另, 通用的加抑扬符的方法是使用公式编辑器.

在word2010中如何编辑公式?
1、打开word2010,进入文档编辑页面;2、点击窗口左上方的“插入”按钮,如图 3、点击窗口右上方的“π 公式”按钮下方的黑三角符号,如图 4、从展开的公式模板中选择需要的公式,点击插入文档后进行编辑。Word2010中如何使用MathType 6.9编辑公式 第一步 打开Word 2010,在工具栏中会出现MathType菜单。...

请问施乐s2010打印机,默认的用户名和密码是多少?
1、用户:11111。密码:x-admin。一般在购买施乐s2010打印机打印机时,都会有一本用户说明手册配套赠送的,可以看一下里面的内容,商家都会在这本说明手册里提到有这个默认密码的。2、如下列查找用户名:(1)双击“设备和打印机”(2)找到施乐打印机的图标 (3)双击打印机设备,然后右键”打印机属性...

如何在word2010中插入弯折号?就是比“-”折号弯一点,S型那种
1、方法其一:在word中可运用Alt不放,小键盘数字排序:65374。当然,在Excel中则是:Alt+41387,这里取Word中使用,如下所示:方法其二:需在全角状态下,按下组合键shift不放,而后再按下 `,即主键盘上1的左边键就是:~。全角状态下:Shfit+`,得到~.方法其三:在输入法图标上右键找到符号表情...

word2010怎么输入向量?
1、使用Word中使用“插入公式”功能编辑数学公式。位置:“插入公式”功能在“插入”选项卡下的“符号”菜单中。如图点击“公式”按钮。2、如果点击了下拉菜单,则选择“插入新公式”选项。3、可以看到,当点击了“公式”后,进入到了公式编辑的状态。4、首先插入简介图片中的第一个向量。在公式编辑状态...

惠州市15912764528: vs2010中如何输出图形 -
乜味复方: 我这有几个函数你看看 CreateCompatibleDC 函数功能 该函数创建一个与指定设备兼容的内存设备上下文环境(DC).通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联. 函数原...

惠州市15912764528: VS2010 如何导出自己画完的用例图 -
乜味复方: 10年的题,可以挖坟吗.ctrl +A ctrl+C ctrl +V即可

惠州市15912764528: 如何用VS2010绘制图像 -
乜味复方: 前提你要清楚你要画什么图形,折线?饼状?柱形图?.然后你用的啥语言?如果是直接代码绘图的话,C/C++用GDI画,C#用 System.Drawing 里面的Graphic类画,具体你要学过.如果你会一些图形库就更好了.

惠州市15912764528: VS2010中编译C语言,如何实现画图 -
乜味复方: 用vs2010实现画图,要学习windows编程,如果会c++的话,可以学MFC编程.推荐书 《Visual C++2010入门经典》(第5版)

惠州市15912764528: 在vs2010中c#如何画曲线图 -
乜味复方: 除了贝塞尔,扇形,椭圆(圆)之外是无法直接绘制曲线的,只能通过拼接实现复杂的曲线 .试试Graphics(百度下使用方法)

惠州市15912764528: vs2010 mfc中如何在视图中创建一个图形,然后用鼠标能拖动,双击它还会弹出对话框. -
乜味复方: 创建一个从CStatic派生的类即可 该类显示图形,并处理鼠标消息使之能拖动并弹出对话框.

惠州市15912764528: 在vs2010中编辑图形用户界面的工具在哪,要装什么别的工具箱吗? -
乜味复方: 你要新建windows应用程序(比如visual basic程序),然后里面就会有工具箱了.

惠州市15912764528: 在VS2010中如何点击按键显示图片 -
乜味复方: 两种方式: 一种是获取当前窗口的DC: CDC *pDc =GetDC(); 然后用这个DC 绑定一个图片,把图片绘制到相应位置. 第二种拖上去一个CPicture控件,在属性中选择一张照片,点击Button的时候控制CPicture控件的显示和隐藏.

惠州市15912764528: 在vs2010中如何导出image控件上的图片
乜味复方: 获得到图片的链接直接下载好了

惠州市15912764528: 如何用Microsoft Visual Studio 2010中的MFC绘图? -
乜味复方: vs2008你用mfc或是直接win32可以直接绘图.只不过现在的图形库换成opengl而已,显然后者和directx一样,绘图性能更加强大.所以这跟编程软件没有关系.vs下,无论是2003~2010,都是走同一个流程,创建出一个窗口,然后引入opengl...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网