GDI
文章平均质量分 78
Hustudent20080101
MFC Qt 瑞萨 ARM Linux
展开
-
//拷贝截获的图像 CaptureDesktop(Image1->Canvas->Handle);
void TForm1::CaptureDesktop(HDC ImageHandle){ HDC hdc = GetDC(0); BitBlt(ImageHandle,0,0,Screen->Width, Screen->Height,hdc,0,0,SRCCOPY); ReleaseDC(0, hdc);}void __fastcall TForm1::Ca转载 2012-09-30 13:02:33 · 839 阅读 · 0 评论 -
构造区域
构造区域GDI 提供几种用于创建区域的函数:CreateRectRgn、CreateEllpticRgn、CreateRoundRectRgn、CreatePolygonRgn 和CreatePolyPolygonRgn。您或许希望 GDI+ 中的Region 类也有类似的构造函数,将矩形、椭圆、圆角矩形和多边形作为参数接收,但事实并非如此。GDI+ 中的Region 类提供一个接收R转载 2012-09-22 16:32:30 · 596 阅读 · 0 评论 -
GDI:deleteObject,delete and detach()
原文地址:and detach()" style="text-decoration:none; color:rgb(141,124,0)">GDI:deleteObject,delete and detach()作者:人生若只如初见一些通过FromHandle()或者Create...()获得的指针需要delete吗? 我知道很多gdi对象在Create后需要使用DeleteO转载 2012-09-22 16:32:59 · 951 阅读 · 0 评论 -
CGDIplus2Dlg::OnFill
void CGDIplus2Dlg::OnFill() { HDC hdc; HWND hWnd=this->GetSafeHwnd(); hdc = ::GetDC(hWnd);HBRUSH hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 0, 255));HPEN hPen = CreatePen(PS_SOLID, 3,原创 2012-09-22 16:33:17 · 565 阅读 · 0 评论 -
CGDIplus2Dlg::OnDrawEllipse()
void CGDIplus2Dlg::OnDrawRectangle() { Pen* myPen = new Pen(Color(255, 255, 0, 0), 3);//红笔 Graphics* myGraphics; CClientDC dc(this); HDC hdc=dc.m_hDC; myGraphics = new Graphics(hdc);/原创 2012-09-23 09:27:36 · 585 阅读 · 0 评论 -
CGDIplus2Dlg::OnDrawBezier()
void CGDIplus2Dlg::OnDrawCurve() {CClientDC dc(this);HDC hdc=dc.m_hDC;Graphics myGraphics(hdc);Point myPointArray[] = {Point(0, 0), Point(50, 30), Point(30, 60)};Pen myPen(Color(255,0,0,原创 2012-09-23 21:16:23 · 653 阅读 · 0 评论 -
CGDIplus2Dlg::OnSetSmoothingMode()
void CGDIplus2Dlg::OnFillRegion() { CClientDC dc(&this->m_StaticWindow); Graphics myGraphics(dc.m_hDC); SolidBrush mySolidBrush(Color(255,255,0,0)); Rect rect(0,0,100,200); Region myRegion(re原创 2012-09-24 09:28:10 · 810 阅读 · 0 评论 -
graphics := TGPGraphics.Create(Canvas.Handle);
uses GDIPAPI, GDIPOBJ{, Winapi.GDIPUTIL}; procedure TForm1.Button1Click(Sender: TObject);var graphics: TGPGraphics; pen: TGPPen;begin graphics := TGPGraphics.Create(Canvas.Handle); pen :=转载 2012-09-24 10:33:08 · 829 阅读 · 0 评论 -
新的 GdiPlus
尽管 GDI+ 已经有近 10 年的历史(随 Win2000 推出), 尽管 DirectX 如日中天, 但在 Windows 7 之前的版本下进行 2D 绘图还是离不开它, 微软也没有停止对它的升级, 随 Vista 的 GDI 版本是 1.1(6.0.xxxx.x), 新增了 Blur 等功能.不过 Win7 已经有了 Direct D2D1, Delphi 也同步有了 Direct2转载 2012-09-24 10:56:16 · 727 阅读 · 0 评论 -
GraphicsImg := TGPGraphics.Create(Image);
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TOb转载 2012-09-24 10:58:47 · 1174 阅读 · 0 评论 -
CClientDC dc(&this->m_StaticWindow)
void CGDIplus2Dlg::OnDrawBezier() { CClientDC dc(this);HDC hdc=dc.m_hDC;Graphics myGraphics(hdc);Pen myPen(Color(255,255,0,0),1);myGraphics.DrawBezier(&myPen, 0, 0, 40, 20, 80, 150, 100, 10);原创 2012-09-23 21:31:00 · 1675 阅读 · 0 评论 -
CreateCompatibleDC创建兼容DC
CreateCompatibleDCThe CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device.HDC CreateCompatibleDC( HDC hdc // handle to DC);Paramete转载 2013-05-08 07:54:15 · 1389 阅读 · 1 评论 -
内存DC解决窗口闪烁问题
内存DC解决窗口闪烁问题分类: 半路出家之Windows编程2010-09-20 20:44 188人阅读 评论(0) 收藏 举报null图形mfcwindowsclass网络 在使用vc开发图形相关的应用程序时,常常需要使用MFC的CDC类直接把图形画在窗口上。这通常是通过响应windows的WM_PAINT消息实现的。如果要画的图形比较复杂,或者比较大转载 2013-05-08 08:49:14 · 889 阅读 · 0 评论 -
好像就是个双缓冲的问题吧,给段代码看看
好像就是个双缓冲的问题吧给段代码看看C/C++ code?12345678910111213141516171819202122232425转载 2013-05-08 09:19:06 · 736 阅读 · 0 评论 -
StretchBlt
StretchBltThe StretchBlt function copies a bitmap from a source rectangle into a destination rectangle, stretching or compressing the bitmap to fit the dimensions of the destination rectangle, if转载 2013-05-08 08:33:00 · 990 阅读 · 0 评论 -
Setting the Pen or Brush Color
Setting the Pen or Brush ColorThe following example shows how an application can change the DC pen color by using the GetStockObject function or SetDCPenColor and the SetDCBrushColor functions.HGDI转载 2013-05-08 07:54:37 · 1024 阅读 · 0 评论 -
用getDC(0)获得屏幕DC后,如何释放. 得到电脑屏幕的宽和高
用getDC(0)获得屏幕DC后,如何释放.2007-02-10 15:51starwsk | 分类:其他编程语言 | 浏览6332次对不起,忘了说了.我学的是VB,屏幕!!,不是其它场景我有更好的答案提问者采纳检举| 2007-02-13 08:47After painting with a common device context转载 2013-05-08 09:08:16 · 3164 阅读 · 0 评论 -
利用CMemDC画图的两种方法
利用CMemDC画图的两种方法分类: vc学习2011-01-12 15:26 1690人阅读 评论(0) 收藏 举报initializationprintingconstructornullclassinclude方法一: 在VS 2010中有一个类CMemDC, 在MFC下可解决绘图闪烁。看看MSDN钟怎么说的: CMemDC Class转载 2013-05-08 09:42:35 · 812 阅读 · 1 评论 -
Graphics g(hMemDC);
ULONG_PTR m_gdiplusToken;Image *pImage; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, s原创 2012-09-22 16:31:55 · 935 阅读 · 0 评论 -
某些基本构造块对于创建二维图片尤其有用
在实践中,人们发现某些基本构造块对于创建二维图片尤其有用。下面列出了全部由 GDI+ 支持的这些构造块: l 线 l 矩形 l 椭圆 l 弧线 l 多边形 l 基数样条 l 贝塞尔样条 GDI+ 中的 Graphics 类提供了以下用于绘制前面列表中项目的转载 2012-09-22 16:32:11 · 510 阅读 · 0 评论 -
CDC,CClientDC
void CThView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: 在此添加消息处理程序代码和/或调用默认值pp = point;CView::OnLButtonDown(nFlags, point);}void CThView::OnUpdate32771(CCmdUI *pCmd转载 2012-09-21 12:55:29 · 583 阅读 · 0 评论 -
使用 GDI+ 编程与使用 GDI 编程的几点不同之处
使用 GDI+ 编程与使用 GDI 编程的几点不同之处。设备上下文、句柄和图形对象如果您使用过GDI(Windows 的以前版本中包括的图形设备接口)编写程序,就会熟悉设备上下文的知识。设备上下文是 Windows 使用的一种结构,用于存储与特殊显示设备的功能和指定如何在该设备上绘制项目的属性相关的信息。用于视频显示的设备上下文还与显示的特定窗口关联。首先,您获得一个设备上下文的句柄 (H转载 2012-09-21 16:45:37 · 544 阅读 · 0 评论 -
在VC使用GDI+的配置方法
在VC使用GDI+的配置方法(发表时间: 2007-5-10 23:20:00)【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/12567/25790.html 复制链接分享到:0唉,最近实在是感叹于自己的落伍. 这样一个令人兴奋的GDI+,却被我雪藏了很久,都不想用它.(可能是因为之前有GDI+漏洞的转载 2012-09-21 17:18:14 · 712 阅读 · 0 评论 -
using namespace Gdiplus;
#include using namespace Gdiplus;#pragma comment(lib,"GdiPlus.lib")////////////////////////////////////////class CGDIplus2App : public CWinApp{public: ULONG_PTR m_gdiplusToken;///////////////原创 2012-09-21 17:21:01 · 1893 阅读 · 0 评论 -
绘制线条的两种方法
绘制线条的两种方法下面每个示例都在位置 (20, 10) 和位置 (200, 100) 之间绘制了一条宽为 3 的红色线条。第一个示例调用 GDI,第二个示例通过托管类接口调用 GDI+。使用 GDI 绘制线条要使用GDI 绘制线条,需要两个对象:设备上下文和钢笔。通过调用 BeginPaint,可以获得设备上下文句柄;通过调用CreatePen,则可以获得钢笔句柄。下一步,调用S转载 2012-09-21 17:23:00 · 1003 阅读 · 0 评论 -
许多GDI+ 方法都是重载的
方法重载许多GDI+ 方法都是重载的,即,若干方法共享同一名称,却有不同的参数列表。例如,Graphics 类的 DrawLine 方法来自下列表单:Status DrawLine(IN const Pen* pen, IN REAL x1, IN REAL y1, IN REAL x转载 2012-09-21 17:25:18 · 478 阅读 · 0 评论 -
CImgProcess::GenHist(double * pdHist, int n) 生成图像的灰度直方图
/**************************************************BOOL CImgProcess::GenHist(double * pdHist, int n)功能: 生成图像的灰度直方图参数: double * pdHist 输出的灰度直方图数组 BYTE n 灰度直方图的灰度级数(段数)返回值: BOOL类型,true为成功,转载 2012-09-21 18:43:24 · 2151 阅读 · 0 评论 -
CImgProcess::Histeq(CImgProcess * pTo) 图像的灰度 均衡化
/**************************************************BOOL CImgProcess::Histeq(CImgProcess * pTo)功能: 图像的灰度直方图均衡化方法参数: CImgProcess * pTo 输出CImgProcess对象的指针 返回值: BOOL类型,true为成功,false为失败*******转载 2012-09-21 18:53:32 · 2247 阅读 · 0 评论 -
GdiObject::DeleteObject()的使用
总结 GdiObject::DeleteObject()的使用 看完了《Microsoft Visual C++ windows applications by example 》第一个例子,做下总结。今天的感想:(1)CObject很好很强大。(2)MSDN上的解释是很好的,不过貌似英文转成中文再加上自己的理解就完全不对了。-_-! (3) GDI容易资源泄漏,以后得看看GDI+转载 2012-09-21 19:46:27 · 729 阅读 · 0 评论 -
DX版本升级频繁,DX8中已经用DirectGraphic取代了DirectDraw
说到实现游戏品质的动画,很多人会立刻想到DirectX,没错DirectDraw很强大,但是并不是必须用DirectDraw才行。动画后面的理论和技巧都是一样的,这和末端使用什么API没有太大关系(如果那API不是太~~慢的话)。就笔者实现的NewImage Lib的测试结果,内部所有像素数据的存储和运算都纯软件实现,最后一步输出到屏幕使用GDI的性能比DirectDraw低不到10%,在Wind转载 2012-09-21 10:42:41 · 1303 阅读 · 0 评论 -
常用像素格式
常用像素格式 要进行图像编程的化对像素格式不了解似乎说不过去。我想应该有较多的人并不太了解,所以这里简要的介绍一下。1. 8bit 也叫做256色模式。每个像素占一个字节, 使用调色板。调色板实际上是一个颜色表,简单的讲就是,我们有256个油漆桶(因为像素的取值范围是0到255),每个油漆桶里面漆的颜色都由红,绿,蓝(RGB)三中基本的油漆按不同比例配置而成。所以转载 2012-09-21 14:44:43 · 2312 阅读 · 0 评论 -
ImgFileInfo.cpp
// ImgFileInfo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "ImgFileInfo.h"#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char T原创 2012-09-21 16:36:55 · 524 阅读 · 0 评论 -
位图操作函数WIDTHBYTES
位图操作函数WIDTHBYTES (2010-09-30 16:19:19)转载▼标签: 杂谈 一、定义#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4);计算图像每行象素所占的字节数目,设置成4的整数倍//=(((bits) + 31) /转载 2012-09-21 16:37:59 · 679 阅读 · 0 评论 -
GDI+ 从总体上已经放弃了当前位置的概念
无当前位置请注意,前面所述的 DrawLine 方法中显示:线条的起点和终点均被作为参数接收。这与 GDI 方案不同,在 GDI 中,调用MoveToEx(hdc, x1, y1, NULL) 来设置当前钢笔位置之后,再调用LineTo(hdc, x2, y2) 以绘制一条从(x1, y1) 到 (x2,y2) 的线条。GDI+ 从总体上已经放弃了当前位置的概念。转载 2012-09-21 17:27:56 · 476 阅读 · 0 评论 -
绘制一个位图(Bitmap)对象
绘制一个位图(Bitmap)对象 GDI的所有操作都是在DC(device context)上进行的,所以首先你应该有DC的概念,如果你对DC还不了解,现在就去翻一翻Windows编程的书吧。 首先我们要Load一个Bitmap对象,使用Win32 API可以写成这样: //从资源Load一个位图,如果从文件load的话,可以使用::LoadImage()转载 2012-09-21 10:44:33 · 1463 阅读 · 0 评论 -
CGDIDlg
void CGDIDlg::OnLoadFile() { CBitmap bmp; bmp.LoadBitmap(IDB_MYBMP); //假设是在一个CWnd派生类的成员函数中 CClientDC dc(this); CDC memdc; memdc.CreateCompatibleDC(&dc); CBitmap *oldbmp=memd原创 2012-09-21 11:28:24 · 491 阅读 · 0 评论 -
DC,CDC,HDC,CClientDC....有什么本质的区别?
问:DC,CDC,HDC,CClientDC....有什么本质的区别? 答:都是DC嘛,HDC就是最原始的DC句柄,很多API的第一个参数就是一个HDC类型,比如 HDC hDC = ::GetDC( m_hWnd); ::MoveToEx( hDC, 0, 0, NULL ); ::LineTo( hDC, 0, 100, ); ::ReleaseDC( m转载 2012-09-21 12:53:04 · 705 阅读 · 0 评论 -
BitBlt( HDC hdcDest, // handle to destination DC int nXDest, // x-coord of destination upper-le
BitBltThe BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.BOOL转载 2013-05-08 08:09:25 · 1722 阅读 · 0 评论