基类是CWnd,使用事件的方法代码举例
时间: 2024-02-25 09:57:44 浏览: 24
好的,以下是一个使用事件的方法的示例代码:
```c++
class CMyWnd : public CWnd
{
public:
CMyWnd();
// 声明事件处理函数
afx_msg void OnPaint();
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
};
CMyWnd::CMyWnd()
{
// 注册事件
EnableActiveAccessibility();
EnableAutomation();
EnableVisualManagerStyle();
}
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
// 映射事件处理函数
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
// 实现事件处理函数
void CMyWnd::OnPaint()
{
CPaintDC dc(this); // 设备上下文
// 绘制窗口内容
dc.TextOutW(10, 10, L"Hello, world!");
}
void CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
{
// 处理鼠标移动事件
// ...
}
```
在上面的示例代码中,我们定义了一个名为 `CMyWnd` 的窗口类,并声明了两个事件处理函数 `OnPaint()` 和 `OnMouseMove()`。在类的构造函数中,我们注册了一些事件,例如 `EnableActiveAccessibility()`、`EnableAutomation()` 和 `EnableVisualManagerStyle()`。然后,在 `BEGIN_MESSAGE_MAP` 和 `END_MESSAGE_MAP` 之间,我们使用 `ON_WM_PAINT()` 和 `ON_WM_MOUSEMOVE()` 宏来映射事件处理函数到实际的事件。最后,我们实现了事件处理函数,例如在 `OnPaint()` 函数中使用 `CPaintDC` 绘制窗口内容,而在 `OnMouseMove()` 函数中处理鼠标移动事件。