EndPaint

更新时间: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 );

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}