65.9K
CodeProject 正在变化。 阅读更多。
Home

CHoverButton - 使用一个位图和工具提示的简单悬停按钮

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.81/5 (22投票s)

2000年10月13日

viewsIcon

427617

downloadIcon

6265

一个简单的即插即用类, 使用 _TrackMouseEvent 函数提供“热”外观的按钮

Sample Image - hoverbutton.gif

引言

在寻找一些漂亮的位图悬停按钮时,我就是找不到我想要的。在这种情况下,你可以做几件事:

  1. 放弃它。
  2. 购买它。
  3. 偷它。
  4. 免费获得它。
  5. 开始哭泣。
  6. 自己动手做(并可能分享它)。

我来分享!

我发现另一个 hoverbutton 类使用了 SetCapture()ReleaseCapture()。使用这种方法给我带来了一些问题。我不记得为什么了,但确实遇到了。所以我心想,为什么这么复杂呢?MS 有一个不错的 API 来处理悬停状态: _TrackMouseEvent()

所以这就是它... 这个类。经过长时间的思考,我决定称它为:CHoverButton。我使用了一些在其他地方找到的类和信息(感谢提供这些信息的人)。

如何使用?

  1. 在你的资源编辑器中,创建一个按钮并设置“所有者绘制”属性。
  2. 使用向导创建一个 CButton 对象在你的 dialog 中。
  3. 在你的 dialog 类文件中包含 "hoverbutton.h" 文件。
  4. CButton 对象的类型重命名为 CHoverButton
  5. 创建一个包含三个按钮状态的位图:按下/释放/悬停。图片需要紧挨着彼此。
    按钮将自行计算其 size = (位图的宽度)/3
    你可以在这里使用真彩色位图。请参阅下面的示例图像。

  6. OnInitDialog() 中,使用 mybutton.LoadBitmap(IDC_MYBUTTON); 加载位图。
  7. 使用 mybutton.SetToolTipText(); 设置工具提示。
  8. 编译并享受吧。

玩得开心!

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.