Windows API GDI(1) BeginPaint和EndPaint函数

BeginPaint和EndPaint函数

说明:
BeginPaint:函数为指定窗口进行绘图工作的准备,并用将和绘图有关的信息填充到PAINTSTRUCT结构中。
EndPaint:和BeginPaint成对出现,描画完成释放。

BeginPaint 函数的作用是告诉 Windows 系统,要开始向显示卡输出内容了,把这次显示的操作请求放到系统显示队列里。由于系统上的显示卡往往只有一个,那么这种资源是独占的,所以操作系统会让显示操作线性化,保证每个窗口的显示是独立进行的,而不是 A 窗口显示一部份,或者 B 窗口显示一部份,而是 A 窗口显示完成后再让 B 窗口显示。因此, BeginPaint 函数就是跟操作系统说,我需要显示了,你安排好吧。当 BeginPaint 返回时,就获取到系统的显示资源句柄,这样就可以调 GDI 一大堆函数来操作了。显示完成后,一定要记得调用函数 EndPaint ,因为使用 BeginPaint 函数请求了独占的显示资源后,如果不释放回去,就会让其它程序永远获取不到显示资源了,这样系统就死锁了。

函数声明:

HDC BeginPaint( 
	HWND hWnd, 
	LPPAINTSTRUCT lpPaint 
	);
	
BOOL EndPaint( 
	HWND hWnd, 
	const PAINTSTRUCT *lpPaint 
	);

参数:
hWnd :[in]被重绘的窗口句柄。
lpPaint :[out]指向一个用来接收绘画信息的PAINTSTRUCT结构,结构体定义如下:

	typedef struct tagPAINTSTRUCT {
   
	 HDC hdc;
	 BOOL fErase;
	 RECT rcPaint;
	 BOOL fRestore;
	 BOOL fIncUpdate;
	 BYTE rgbReserved[32];
	} PAINTSTRUCT, *PPAINTSTRUCT;
	
	【hdc】 是获取设备句柄。
	【fErase】 是否擦新背景。
	【rcPaint】 是显示的窗口大小。
	【fRestore 、 fIncUpdate 、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值