【发布时间】:2015-10-10 08:23:18
【问题描述】:
我是 Windows 编程新手,我有一个关于绘制窗口的问题,特别是关于 BeginPaint 函数的问题
当我在 MSDN 上读到它时,它说
通过调用 BeginPaint 函数开始绘画操作。此函数使用有关重绘请求的信息填充 PAINTSTRUCT 结构。当前更新区域在 PAINTSTRUCT 的 rcPaint 成员中给出。
我的问题是,当我在 wndproc 中处理 WM_PAINT 消息并通过调用 BeginPaint 函数开始时,我没有向此函数提供有关我收到的特定消息或需要的更新区域的任何数据待画,那么这个函数如何填充PAINTSTRUCT,包括无效的矩形“rcPaint成员”?!
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
// All painting occurs here, between BeginPaint and EndPaint.
EndPaint(hwnd, &ps);
}
当我在 MSDN 上引用 BeginPaint 函数时,它说
应用程序不应调用 BeginPaint,除非响应 WM_PAINT 消息
我的猜测可能是这个函数在内部从 Windows 获取这些信息 通过请求此信息和发送到窗口的最后一条 WM_PAINT 消息,我将它的句柄“`hwnd'”作为函数的第一个参数传递。对吗?
提前致谢。
【问题讨论】: