void CStreamingAIDlg::OnPaint()
时间: 2024-03-17 11:47:19 浏览: 51
MFC.zip_onpaint
`void CStreamingAIDlg::OnPaint()` 是 MFC 中 `CStreamingAIDlg` 类的成员函数,它是处理窗口绘图消息的函数,当窗口被重绘时自动调用。
具体来说,当窗口需要更新显示内容时,Windows 操作系统会发送一个 `WM_PAINT` 消息给窗口,表示需要进行重绘。MFC 框架会自动将该消息转换为 `OnPaint` 函数的调用,开发者可以在该函数中实现窗口的绘图逻辑。
在 `OnPaint` 函数中,通常需要进行以下操作:
1. 获取设备上下文(Device Context,DC),即表示当前绘图设备的句柄,例如窗口、位图等。
2. 创建绘图对象,例如画刷、画笔、字体等。
3. 进行绘图操作,例如绘制文本、图形、位图等。
4. 释放绘图对象和设备上下文,避免资源泄漏。
下面是一个简单的 `OnPaint` 函数示例,用于在窗口客户区中绘制一条直线:
```cpp
void CStreamingAIDlg::OnPaint()
{
CPaintDC dc(this); // 获取设备上下文
// 创建一支红色画笔
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
auto oldPen = dc.SelectObject(&pen);
// 绘制一条直线
dc.MoveTo(10, 10);
dc.LineTo(100, 100);
// 释放画笔和设备上下文
dc.SelectObject(oldPen);
}
```
需要注意的是,`OnPaint` 函数是自动调用的,开发者无法手动调用它。如果需要强制重绘窗口,可以调用 `Invalidate` 函数向系统发送一个 `WM_PAINT` 消息,表示需要进行重绘操作。
阅读全文