更新时间:2024-03-27 23:22
BeginPaint是函数为指定窗口进行绘图的开始。EndPaint是绘图的结束,释放绘图区,相似函数,GetDC () 与ReleaseDC () 。前者与后者的区别是,利用从GetDC()传回的句柄可以在整个客户区上绘图。
EndPaint函数标记指定窗口的绘画过程结束;这个函数在每次调用BeginPaint函数之后被请求,但仅仅在绘画完成以后。
BOOL EndPaint(HWND hWnd, // 窗口句柄CONST PAINTSTRUCT *lpPaint // 绘制窗口的数据);
hWnd:[输入]已经被重画的窗口的HANDLE
lpPaint:[输入]指向一个PAINTSTRUCT结构,该结构包含了绘画信息,是BeginPaint函数返回的返回值:
返回值:
返回值始终是非0
备注:
PAINTSTRUCT 结构体包含了用于绘制窗口客户区的信息。
PAINTSTRUCT定义:
typedef struct tagPAINTSTRUCT {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
} PAINTSTRUCT, *PPAINTSTRUCT;
hdc是用于绘制的句柄,fErase如果为非零值则擦除背景,否则不擦除背景,rcPaint 通过制定左上角和右下角的坐标确定一个要绘制的矩形范围,该矩形单位相对于客户区左上角,后面三个参数都是系统预留的,编程一般用不到。
采用GDI绘图
HDC hdc;//设备场景DC
PAINTSTRUCT ps;
HEPN hPen;
HPEN hPenOld;
hdc = BeginPaint( hWnd , &ps );
hPen = CreatePen( PS_SOLID , 3 , RGB( 255 , 0 , 0 );
hPenOld = ( HPEN )SelectObject ( hdc , hPen );
MoveToEx ( hdc , 20 , 10 , NULL );
LineTo( hdc , 200 ,100);
SelectObject (hdc , hPenOld);
DeleteObject ( hPen );
EndPaint ( hWnd , &ps );