FxButton类

介绍 FxButton允许开发者使用标题创建定制的按钮, 位图,工具提示等。它不能做所有的事情,所以一定要检查它 的局限性。我是一个初学者在编码vc++与MFC和我做了这类 乐趣和——最重要的是——学习。 这个类的目标——但不是唯一的目标——是使它像 可以将其集成到应用程序中,并有最大的选项 可用。如果你不知道句柄是什么,你想要一个位图按钮,你 可以使用这个类。 第一个FxButton演示不是一个按钮库;它只包含一个 FxButton,但你可以使用它。演示提供了大约30个按钮的访问 组件。每个选项都可以应用到任何按钮状态:正常, 被推倒、推倒或使残疾。 第二个FxButton演示是一个按钮库。它显示了剪切的使用 应用于按下、检查或单选的按钮和透明位图区域 按钮。 有什么新的更新 这是一个非常小的变化,但是它杀死了一个坏的bug。应用程序不再崩溃后 几分钟的行刑时间。我没有测试Win98-95,但它是ok的 别人。 背景(可选) 限制 首先,在阅读之前,你可能想知道FxButton不能做什么 在此文档中找不到您要找的内容。你不应该 使用FxButton类,如果你: 想要看到动画位图或AVIs上的按钮。 想看动画文本,闪烁的颜色,或使用GIF图片。 需要使用带有3States属性的检查按钮。 想要一个自动大小的按钮与位图大小绘制在它上。 想要一个按钮,自动考虑到所有的基本和 在visualc++的资源编辑器上可用的扩展样式。 想要有5个不同的位图和5个不同的剪贴窗口只用 2 GDI对象。 想要创建一个高度定制的按钮只有3行代码。 Fx按钮的作用 一个FxButton可以包含不同的数据为正常,按下,结束和 禁用状态。这意味着它可以管理4个位图,4个标题,4个背景 颜色,等等。下面是所有按钮项目的列表: 背景颜色 边框颜色和大小 位图 透明位图 Backscreen位图 文本 工具提示 焦点 光标 声音 剪裁区域 其他特点: 位图可以被拉伸到按钮矩形上的任何位置。 标题可以绘制在按钮的任何位置 还有许多其他选择;只需查看演示和文档即可。 按钮类型包括:push,单选,check, check和单选的push-like按钮 按钮。 按钮可以是圆角矩形。 焦点可以改变更多的经典矩形的颜色。 为位图和裁剪区域使用2种透明颜色。它可以有 不同的位图,同时保持相同的自定义剪辑区域。 使用的代码 所有FxButton的初始化方法都从SetFx开始 很大的帮助,当你做你的按钮。这里有一个例子来说明它是多么简单 可以。 假设你的按钮叫myButton。隐藏,复制Code

// Init text
myButton.SetFxText("Ok");
myButton.SetFxTextFont("Arial");
// Init bitmap
myButton.SetFxBitmap("IDB_BITMAP1");
myButton.SetFxBitmapTransparentColor1(RGB(0,255,0));
// Init background color
myButton.SetFxBkcolor(RGB(100,100,100));
// Create the button
myButton.FxCreateButton();

有趣的是SetFx方法允许开发人员设置 4个按钮状态的值。几乎所有的SetFx方法都有 同样的规则。这里有一个设置文本的例子:Hide  复制Code

SetFxText(CString Normal="", bool Duplicate=true,
    CString Pushed="", CString Over="", CString Disabled="");

The Normal, push, Over和 禁用状态是每个按钮状态的文本值。 Duplicate表示正常值是否为 应用到其他按钮状态,如果他们没有被设置 按钮状态是设置其文本如下: 隐藏,复制Code

myButton.SetFxText("Normal", true, "Pushed", "Over", "Disabled");

现在只要用鼠标来玩就可以看到文字的变化了。 它没有处于正常状态的文本,但是悄悄地告诉您何时 鼠标在上面,点击时感谢你,它讨厌被禁用。这 “无声通知”文本按钮是:隐藏复制Code

myButton.SetFxText("", false, "Thanks", "Click me !", "Oh No !");

现在你可以用同样的方式应用所有的SetFx方法。这是 SetFx方法列表: 按钮SetsHide,复制Code

SetFxClippingMode
SetFxClippingColor1
SetFxClippingColor2

BackgroundHide,复制Code

SetFxBkColor
SetFxBkColorMode

BordersHide,复制Code

SetFxBorderSize
SetFxBorderColorMode
SetFxBorderEffect

BitmapHide,复制Code

SetFxBitmap
SetFxBitmapRect
SetFxBitmapPosition
SetFxBitmapTransparentColor1
SetFxBitmapTransparentColor2
SetFxBitmapTransparentMode
SetFxBitmapEffect

TextHide,复制Code

SetFxText
SetFxTextRect
SetFxTextPosition
SetFxTextFont
SetFxTextSize
SetFxTextColor
SetFxTextStyle
SetFxTextEffect

MediaHide,复制Code

SetFxSound
SetFxCursor
SetFxSystemCursor

TooltipHide,复制Code

SetFxToolTip

这些SetFx方法初始化数据成员。为了避免太 许多数据成员,它们存储在以下结构中:复制Code

m_Background
m_Bitmap
m_Border
m_Text
m_Focus
m_Media
m_ToolTip
m_Button
m_Control

只有9个数据成员有助于提高性能。更多信息请参见文档 关于他们的细节。 的兴趣点 如演示中所示,可以完全重新创建按钮。自 剪切区域,位图,颜色,标题等,可以很容易地修改,这 类可以实现skented应用程序。另一个有趣的地方是 重新创建按钮的工具。FxButton类允许开发人员进行更改 按钮位图和剪辑区域很容易。 历史 2003年11月:第一次更新修复程序崩溃的bug - 位图绘制的任何地方…改善没有必要否定 如果你改变文字或风格或颜色等… 本文转载于:http://www.diyabc.com/frontweb/news1080.html

posted @ 2020-08-08 03:26  Dincat  阅读(264)  评论(0编辑  收藏  举报