1. DC的获取和撤销
HDC CreateDC(LPCTSTR lpszDriver,LPCTSTR lpszDevice,NULL,CONST DEVMODE *lpInitData);
函数由给定的设备名字为给定设备创建一个设备上下文。
HDC CreateCompatibleDC(HDC hDC);//创建一个和hDC兼容的设备描述表
HDC GEtWindowDC(HWND hwnd);//获取整个窗口的显示设备描述表的内容,包括标题栏、菜单和滚动条
HDC GEtDC(HWND hwnd);//获取给定窗口用户区显示器描述表的句柄。
int ReleaseDC(HWND hwnd,HDC,hdc);//释放一个设备描述表。
BOOL DeleteDC(HDC hdc);//撤销DC
GetWindowDC 和GetDC取得了公用设备描述表后,一定要用Release释放描述表。而用CreateCompatible创建的内存DC,在不使用的时候应该用DeleteDC释放。
2.创建DC的对象
1)画笔
HPEN CreatePen(int fnPenStyle,int nWidth,COLORREF crColor);//创建一个逻辑画笔
HPEN CreatePenIndirect(CONST LOGPEN *lplgpn);//创建由LOGPEN结构指定的逻辑画笔
2)画刷
HBRUSH CreateSolidBrush(COLORREF crColor);//创建一个有指定颜色的画刷
HBRUSH CreateBrushIndirect(CONST LOGBRUSH *lplb);//创建一个由LOGBRUSH指定的逻辑画刷
HBRUSH CreateHatchBrush(int fnStyle,COLORREF clrref);//创建一个具有指定阴影图案和颜色的逻辑刷子。
HBRUSH CreatePatternBrush(HBITMAP hbmp);//创建一个有hbmp参数指定的图案的逻辑刷子。
3)字体
HFONT CreateFont( int nHeight,int nWidth,int nEscapement,int nOrientation,int fnWeight,DWORD fdwUnderLine,DWORD fdwStrikeOut,DWORD fdwCharSet,DWORD fdwCharSet,DWORD fdwOutputPrecision,DWORD fdwClipPrecision,DWORD fdwQuality,DWORD fdwPitchAndFamily,LPCTSTR lpszFace);//创建一种具有指定特征的逻辑字体。
HFONT CreateFontIndirect( CONST LOGFONT *lplf);//创建一种由LOGFONT定义的逻辑字体。
3.设置DC对象的颜色
COLORREF SetDCBrushColor(HDC hdc,COLORREF crColor);//设置DC中画刷的颜色,并置换出旧的颜色
COLORREF GetDCBrushColor(HDC hdc);//获取DC中画刷的颜色
COLORREF SetDCPenColor(HDC hdc,COLORREF crColor);//设置DC中画笔颜色,并置换出旧的颜色
COLORREF GetDCPenColor(HDC hdc);//获取DC中画笔的颜色
COLORREF SetTextColor(HDC hdc,COLORREF crColor);//设置DC中文本的颜色,并置换出旧的颜色
COLORREF GetTextColor(HDC hdc);//获取DC中当前文本颜色
4.设置和获取DC中的对象
HGDIOBJ SelectObject(HDC hdc,HGDIOBJ hgdiobj);//此函数将由参数指定的逻辑对象选进DC,返回旧的逻辑对象
HGDIOBJ GetCurrentObject(HDC hdc,UINT uObjectType);//函数返回指定类型的当前选择的对象
int GetObject(HGDIOBJ hgdiobj, int cbBuffer,LPVOID lpvObject);//函数用定义逻辑对象填充一个缓冲区,如果hgdiobj是一个位图,则只返回该位图的宽、高和颜色格式信息
DWORD GetObjectType(HGDIOBJ hObj);//函数获取给定的GDI对象的类型
HGDIOBJ GetStockObject(int fnObject);//函数获取预先定义的库存的画刷、画笔、字体或调色板中某一个句柄