重绘窗口
时间: 2023-07-19 22:09:53 浏览: 174
在 MFC 中,可以通过重写 CWnd 或 CView 类的 OnPaint 函数来实现窗口的重绘,具体步骤如下:
1. 在类的头文件中声明 OnPaint 函数:
```
afx_msg void OnPaint();
```
2. 在类的源文件中实现 OnPaint 函数:
```
void CMyWnd::OnPaint()
{
CPaintDC dc(this); // 获取窗口的设备上下文
// 进行绘制操作,例如使用 GDI 函数绘制图形或文本
}
```
3. 在类的构造函数中调用 EnableActiveAccessibility 函数,以确保程序可以接收到 WM_PAINT 消息:
```
CMyWnd::CMyWnd()
{
EnableActiveAccessibility();
}
```
4. 如果需要在窗口的创建或大小改变时重绘窗口,可以重写 OnCreate 或 OnSize 函数,并在其中调用 Invalidate 函数:
```
void CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CWnd::OnCreate(lpCreateStruct);
Invalidate();
}
void CMyWnd::OnSize(UINT nType, int cx, int cy)
{
CWnd::OnSize(nType, cx, cy);
Invalidate();
}
```
这样,每次窗口的无效区域需要重绘时,都会自动调用 OnPaint 函数进行绘制操作。
阅读全文