可移动可调整大小的运行时悬浮按钮与工具提示

介绍 我发现CHoverButton 尼克·阿尔伯斯和喜欢 然而,悬浮按钮的想法并没有足够的通用性 为了我想要的。有 不过,鼠标悬停离开代码是一个很好的开始。我想要的 能够在运行时移动和调整按钮的大小。我也 希望能够拉伸位图以及加载 从水平或垂直布局悬停图像。我也需要 在没有位图的情况下,作为常规按钮绘制的按钮 在加载。这样就创建了CHoverButtonEx。 要使用CHoverButtonEx类,只需在上创建一个按钮 您的对话框,并将其从CButton更改为CHoverButtonEx。 隐藏,复制Code

#include "hoverbutton.h"
...
CHoverButtonEx m_hoverbtn;

如果不需要位图或工具提示,那么就完成了。如果你需要位图, 然后只需调用LoadBitmap(IDB_Bitmap);或者隐藏起来Code

LoadBitmapFromFile("Bitmap.bmp");

副本。 LoadBitmap采取一个图像,有3个相等大小的部分。每个位图的大小 应该是宽度(或高度)/ 3 =图像大小。 调用SetHorizontal(真正的);对于水平图像,SetHorizontal(FALSE); 用于垂直图像,然后调用LoadBitmap。图像的布局应如下: 接下来我们通过调用SetToolTipText(UINT nResourceStringID, bActivate = TRUE)来添加工具提示。 或者作为SetToolTipText(CString spText, bActivate = TRUE)。激活设置 设置为true来创建工具提示并告诉它显示鼠标是否悬停。如果Activate == FALSE, 当鼠标悬停在按钮上时,工具提示将不显示。SetToolTipText () 将创建工具提示并同时设置其文本。如果我想改变 工具提示文本吗?然后你只是打电话 隐藏,复制Code

DeleteToolTip();
SetToolTipText("My string here");

这将删除我们之前创建的工具提示,并创建一个带有适当文本的新工具提示。为什么不 我们只是重置了你问的文本?理想情况下,当按钮是可调整大小时,这将工作 将文本设置为新字符串不起作用。我们必须删除工具提示并重新创建它 适当的尺寸和文字。 为了允许在运行时移动和调整按钮的大小,我们只需调用SetMoveable()和this 将允许在运行时移动或调整大小。移动是在运行时通过右键单击和拖动按钮完成的 然后单击您想要放置对象的位置。通过按住Control键和来完成调整大小 右键单击按钮,然后在按钮调整到您想要的大小时单击左键。 因此,我们使用这个类的代码在头文件中是这样的: 隐藏,复制Code

#include "hoverbutton.h"
...
...
...
CHoverButtonEx m_hover;

像这样在我们的。cpp文件中: 隐藏,复制Code

m_hover.SetHorizontal(TRUE); // Images are laid out horizontally
m_hover.LoadBitmap(IDB_HOVER);//Load from resource
CString hover=_T("Hover Button");//ToolTip text
m_hover.SetMoveable();// Allow moving and resizing
m_hover.SetToolTipText(hover);//Create the ToolTip

处理这些进程的函数在代码中有很好的文档说明。享受吧! 本文转载于:http://www.diyabc.com/frontweb/news523.html

原文地址:https://www.cnblogs.com/Dincat/p/13451333.html