gdi和gdi+

Uma ·
更新时间:2024-09-21
· 894 次阅读

gdi DC

获取DC

// 第一种 ::GetDC(hWnd); ::ReleaseDC(hwnd, hdc); // 第二种 PAINTSTRUCT ps; ::BeginPaint(hwnd, &ps); ::EndPaint(hwnd, &ps); // 第三种 创建兼容内存DC HDC hMemDC = ::CreateCompatibleDC(hDest); ::DeleteDC(hMemDC);

操作DC

SaveDC RestoreDC gdi对象

   分类

画笔HPEN 画刷HBRUSH 字体HFONT 区域HRGN 位图HBITMAP

   通用gdi对象

xxx_PEN       - 如 WHITE_PEN和NULL_PEN xxx_BRUSH  - 如 WHITE_BRUSH和NULL_BRUSH xxx_FONT    - 如 DEVICE_DEFAULT_FONT

   通过对象ID号获取通用gdi对象

HGDIOBJ GetStockObject(int i); 

   获取gdi对象信息

int WINAPI GetObejct(HANDLE h, int c, LPVOID pv);   

   使用

HGDIOBJ WINAPI SelectObject(HDC hdc, HGDIOBJ h); 

   画笔

// CreatePen SelectObject DeleteObject

   画刷

// 单色 阴影 图案 CreateSolidBrush CreateHatchBrush CreatePatternBrush

   字体

LOGFONT lf = { 0 }; HFONT hNewFont = ::CreateFontIndirect(&lf); HFONT hOldFont = ::SelectObject(hDC,hNewFont); ::DrawText(hDC,_T(""),3,&rect,DT_LEFT); ::SelectObject(hDC,hOldFont); ::DeleteObject(hNewFont);

   区域

CreateRectRgnIndirect CreateRoundRectRgn CombineRgn DeleteObject

   位图

// 获取位图信息 BITMAP bm; ::GetObject(hBitmap, sizeof(BITMAP), &bm); // 导入位图 ::LoadBitmap(hIns,MAKEINTRESOURCE(IDB_XXX)); ::LoadImage(hIns,MAKEINTRESOURCE(IDB_XXX),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_LOADMAP3DCOLORS); ::LoadImage(hIns,_T(".\\1.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE|LR_CREATEDIBSECTION); // 销毁 ::DeleteObject(); CreateDIBSection CreateCompatibleBitmap gdi绘制 // 绘制点 SetPixel() // 绘制线 MoveToEx() LineTO() // 绘制矩形 Rectangle() // 绘制圆 Ellipse() // 绘制饼 Pie() gdi的api

blt 

// BitBlt BOOL WINAPI BitBlt( HDC hdcDst, int xDst, int yDst, int wDst, int hDst, HDC hdcSrc, int xSrc, int ySrc DWORD rop ); // StretchBlt BOOL WINAPI StretchBlt( HDC hdcDst, int xDst, int yDst, int wDst, int hDst, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc DWORD rop ); // demo ::BitBlt(hDest,x,y,w,g,hMemDC,0,0,SRCCOPY);

create

// 创建字体HFONT CreateFontIndirect

set和get

// SetTextColor // 设置背景模式,比如透明:TRANSPARENT SetBkMode // 设置和获取指定点的颜色 SetPixel GetPixel

 draw

# DrawText TextOut gdi+

初始化和反初始化

// 初始化 ULONG_PTR uToke; GdiplusStartupInput gdiplusStartupInput; GdiplusStartup(&uToke,& gdiplusStartupInput); // 反初始化 GdiplusShutdown(uToke);  Graphics

类似于DC

DrawLine

DrawRectangle

DrawEllipse

DrawPie

DrawString

DrawImage

MeasureString

gdi+类

Pen

SolidBrush HatchBrush TextureBrush LinearGradientBrush

Font

Bitmap

StringFormat

相关窗口API

IsWindow

GetWindowRect

GetClientRect

ClientToScreen

ScreenToClient

SetWindowPos

师从小白 原创文章 68获赞 15访问量 4万+ 关注 私信 展开阅读全文
作者:师从小白



gdi

需要 登录 后方可回复, 如果你还没有账号请 注册新账号