mfc toolbar控件添加按钮,实现按钮悬停高亮
时间: 2024-10-16 07:20:20 浏览: 44
在MFC工具栏ToolBar上面添加Edit控件
在MFC (Microsoft Foundation Classes) 中,工具栏(ToolBar) 控件通常用于应用程序中提供一组操作快捷方式。如果你想在添加按钮并实现按钮悬停高亮效果,可以按照以下步骤进行:
1. **创建工具栏**:
- 在设计视图中,从"Insert"菜单选择 "ToolBar",然后将其拖放到你的MDI/MDIFrame窗口或者具体的对话框上。
2. **添加按钮**:
- 右键点击工具栏,在弹出菜单中选择 "Add Button",输入按钮的文字标签,并设置图标如果需要的话。
3. **设置属性**:
- 在"Button Properties"(按钮属性)对话框中,找到"Style"选项卡,勾选 "BS_HOLLOW" 或者 "BST_PUSHED" 来实现默认外观。
- 然后在 "OnUpdate" 属性中设置高亮回调函数,当鼠标悬停在按钮上时更新状态。
4. **自定义消息处理**:
- 创建一个新的槽函数(例如 OnNCPaint()),并在其中处理鼠标悬浮事件。你可以通过检查 `LOWORD(wParam)` 是否等于 ID适当的位置来自定义悬停行为。
5. **绘制按钮状态**:
- 在 OnNCPaint() 函数里,你可以判断鼠标位置,如果在按钮区域内则切换按钮的状态,改变其颜色或者样式,以显示高亮。
```cpp
void CYourClass::OnNCPaint()
{
CPaintDC dc(this); // DC for painting
if (_mouseHoveringButton)
{
// 高亮按钮,比如更改按钮背景颜色
CDC* pOldDC = dc.SelectObject(m_hHighlightBrush);
dc.Rectangle(_buttonRect);
dc.SetBkColor(_highlightColor);
dc.DrawEdge(_buttonRect, EDGE_RAISED, FE_DONTCARE);
dc.SelectObject(pOldDC);
}
else
{
// 清除高亮,恢复默认外观
dc.Rectangle(_buttonRect);
dc.SetBkColor(_defaultBackColor);
dc.DrawEdge(_buttonRect, EDGE_SUNKEN, FE_DONTCARE);
}
// 继续处理常规的NCPaint操作...
}
```
阅读全文