CButtonST v3.9 (MFC Flat buttons)



  • 一个功能齐全的所有者绘制按钮类 - 它有地段!

  • Download demo
    project - 902 Kb
     点击打开链接http://www.codeproject.com/KB/buttons/cbuttonst/CButtonST_demo.zip

  • 摘要

    CButtonST是从MFC CButton的类派生的类。

    有了这个类应用程序可以有标准按钮或“平板”式的新的和现代的按钮!

  • 主要的CButtonST特点是:
  • 标准CButton的特性

    在同一按钮上的文字和图标(或位图)

    只有文字或唯一的图标/位图按钮

    支持任何尺寸的图标(最大256色)

    位图支持

    支持透明按钮(位图应用)

    标准或平按钮样式

    从平面更改运行时标准样式

    按钮可以有两个图像。其中,当鼠标移动到按钮和一个当鼠标外(仅适用于“平面”按钮)

    每个颜色可定制

    可以通过DDX_调用中使用

    在DLL文件中使用

    可以dinamically创建

    每个按钮都可以有其自己的鼠标指针

    按钮也高亮当窗口处于非活动状态,像发生在Internet Explorer中

    内置多行工具提示支持

    内置在菜单的基本支持

    内置支持所有者绘制菜单(使用BCMenu类)

    内置的声音的基本支持

    可以得出创建其他的按钮样式默认情况下不提供

    包括完整的源代码!

    UNICODE兼容

    在现有的应用成本更低的实现

  • 如何在应用程序中集成CButtonST??

  • 在您的项目包括下列文件:

  • BtnST.h

    BtnST.cpp

    从3.5版本开始,现在的CButtonST支持使用BCMenu类创建菜单。

    这个第三方类为您展示使用最新的视觉样式菜单的能力所看到

    最新的微软产品上,甚至在Windows XP中。

    最新版本BCMenu可以在这里找到。

  • 要启用BCMenu支持,以下两行BtnST.h必须启用:

  • <span style="font-size:14px;">#define	BTNST_USE_BCMENU
    #include "BCMenu.h"</span>

    此外,以下文件必须包含在您的项目:

    BCMenu.h

    BCMenu.cpp

    注:请注意,当BCMenu支持已启用的的SetMenu方法接受的参数是不同的!

  • 从3.6版本开始,可的CButtonST玩特定的按钮状态的声音。

  • 要启用声音支持BtnST.h,以下行必须启用:

  • <span style="font-size:14px;">#define	BTNST_USE_SOUND</span>

  • 这使进入SetSound方法。

  • 创建一个对象的CButtonST静态

    随着对话框编辑器创建一个标准的按钮调用,例如,IDOK(你不需要使其所有者绘制),并创建了这个按钮一个成员变量:

  • <span style="font-size:14px;">CButtonST m_btnOk;</span>

现在附加按钮的CButtonST。对于基于对话框的应用程序,在你的OnInitDialog:

<span style="font-size:14px;">	// 调用基类的方法
	CDialog::OnInitDialog();

	// 创建IDOC按钮
	m_btnOk.SubclassDlgItem(IDOK, this);</span>

或者在你的DoDataExchange:

<span style="font-size:14px;">	//调用基方法
	CDialog::DoDataExchange(pDX);

	//创建IDOK按钮
	DDX_Control(pDX, IDOK, m_btnOk);</span>

Create a CButtonST object dynamically

创建一个对象的CButtonST动态

在您的应用程序,创建按钮的一个成员变量。请注意,这个变量是一个指针:

<span style="font-size:14px;">CButtonST* m_pbtnOk;</span>

现在创建按钮。对于基于对话框的应用程序,在你的OnInitDialog:

<span style="font-size:14px;">//调用基类的方法
CDialog::OnInitDialog();

//创建IDOK按钮
m_pbtnOk = new CButtonST;
m_pbtnOk->Create(_T("&Ok"), WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP,
                CRect(10, 10, 200, 100), this, IDOK);
//设置应用程序相同的字体
m_pbtnOk->SetFont(GetFont());</span>

Remember to destroy the button or you will get a memory leak. This can be done, for example, in your class destructor:

记住摧毁按钮或你会得到一个内存泄漏。这是可以做到,例如,在你的类的析构:

<span style="font-size:14px;">if (m_pbtnOk) delete m_pbtnOk;</span>

Class methods:

操作SetIcon(使用多尺寸的资源)
指定图标的按钮。
以往任何图标或位图将被删除。
<span style="font-size:14px;">//参数:
// [IN] nIconIn
//显示图标资源的ID号,当鼠标移动到
//按钮。传递null从按钮删除任何图标。
// [IN] nCxDesiredIn
//指定的宽度,以像素为单位加载图标。
// [IN] nCyDesiredIn
//指定的高度,以像素为单位加载图标。
// [IN] nIconOut
//显示图标资源的ID号当鼠标外
// 按钮。可以为NULL。
//如果该参数是特殊值??BTNST_AUTO_GRAY(强制转换为int)
//第二个图标将被自动创建从nIconIn开始
//并转换为灰度。
//如果该参数是特殊值??BTNST_AUTO_DARKER(投
//为int)第二个图标将自动创建25%
//从nIconIn较暗的起点。
// [IN] nCxDesiredOut
//指定的宽度,以像素为单位加载图标。
// [IN] nCyDesiredOut
//指定的高度,以像素为单位加载图标。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。
//</span>
<pre class="notranslate" id="pre777491" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;" processed="true"><p><span style="font-size:14px;">DWORD SetIcon(<span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nIconIn, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nCxDesiredIn, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nCyDesiredIn,
              <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nIconOut = NULL, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nCxDesiredOut = <span class="code-digit" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 128);">0</span>, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nCyDesiredOut = <span class="code-digit" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 128);">0</span>)</span></p>

操作SetIcon(使用资源)指定图标的按钮。和以前的图标或位图将被删除。

<span style="font-size:14px;">操作SetIcon(使用资源)
//参数:
//[IN] nIconIn
//显示图标资源的ID号,当鼠标移动到
//按钮。
//传递null删除按钮的任何图标。
//[IN] nIconOut
//显示图标资源的ID号当鼠标
//按钮之外。可以为NULL。
//如果该参数是特殊值BTNST_AUTO_GRAY(强制转换为int)
//第二个图标将自动创建启动
// nIconIn并转换为灰度。如果这个参数是
//特殊值BTNST_AUTO_DARKER(强制转换为int)第二
//图标将被自动创建的25%来自较深开始nIconIn。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。
//</span>
<pre class="notranslate" id="pre996857" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetIcon(<span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nIconIn, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nIconOut = NULL)</span>

操作SetIcon(使用句柄)指定图标的按钮。和以前的图标或位图将被删除。

<span style="font-size:14px;">// Parameters:
//     [IN]   nIconIn
//            ID number of the icon resource to show when the mouse is over the
//            button.
//            Pass NULL to remove any icon from the button.
//     [IN]   nIconOut
//            ID number of the icon resource to show when the mouse is
//            outside the button. Can be NULL.
//            If this parameter is the special value BTNST_AUTO_GRAY (cast to int)
//            the second icon will be automatically created starting from
//            nIconIn and converted to grayscale. If this parameter is the
//            special value BTNST_AUTO_DARKER (cast to int) the second
//            icon will be automatically created 25% darker starting from nIconIn.
//
// Return value:
//      BTNST_OK
//          Function executed successfully.
//      BTNST_INVALIDRESOURCE
//          Failed loading the specified resource.
//</span>
<pre class="notranslate" id="pre996857" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetIcon(<span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nIconIn, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nIconOut = NULL)</span>

操作SetIcon(使用句柄)指定图标的按钮。和以前的图标或位图将被删除。

<span style="font-size:14px;">//参数:
//[IN] hIconIn
//处理FO的图标来显示当鼠标移动到按钮上。
//传递null删除按钮的任何图标。
//[IN] hIconOut
//处理的图标来显示当鼠标按钮之外。
//可以为null。
//如果该参数是特殊值BTNST_AUTO_GRAY第二
//图标将被自动创建从hIconIn和启动
//转换成灰度。
//如果该参数是特殊值BTNST_AUTO_DARKER第二
//图标将被自动创建的25%来自较深开始hIconIn。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。</span>
<pre class="notranslate" id="pre988793" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetIcon(HICON hIconIn, HICON hIconOut = NULL)</span>

设置位图(使用资源)分配位图的按钮。和以前的图标或位图将被删除。

<span style="font-size:14px;">//参数:
//[IN] nBitmapIn
//显示位图资源的ID号当鼠标
//按钮上。
//传递null删除按钮的位图。
//[IN] crTransColorIn
//颜色(内侧nBitmapIn)被用作透明的颜色。
//[IN] nBitmapOut
//位图资源的ID号来显示当鼠标
//该按钮外部。
//可以为null。
//[IN] crTransColorOut
//颜色(内侧nBitmapOut)被用作透明的颜色。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。
// BTNST_FAILEDMASK
//创建失败掩码位图。
//</span>
<span style="font-size:14px;">DWORD SetBitmaps(int nBitmapIn, COLORREF crTransColorIn,
                 int nBitmapOut = NULL, COLORREF crTransColorOut = 0)</span>

设置位图(使用句柄)

分配位图的按钮。

和以前的图标或位图将被删除。

<span style="font-size:14px;">//参数:
//[IN] hBitmapIn
//处理FO位图显示当鼠标移动到按钮上。
//传递null删除按钮的位图。
//[IN] crTransColorIn
//颜色(内侧hBitmapIn)被用作透明的颜色。
//[IN] hBitmapOut
//处理位图显示当鼠标按钮之外。
//可以为null。
//[IN] crTransColorOut
//颜色(内侧hBitmapOut)被用作透明的颜色。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。
// BTNST_FAILEDMASK
//创建失败掩码位图。</span>

<pre class="notranslate" id="pre404726" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;"><span class="code-comment" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 128, 0); font-style: italic;">//</span><span class="code-comment" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 128, 0); font-style: italic;">
</span>DWORD SetBitmaps(HBITMAP hBitmapIn, COLORREF crTransColorIn,
                 HBITMAP hBitmapOut = NULL, COLORREF crTransColorOut = <span class="code-digit" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 128);">0</span>)</span>

设置平面设置按钮,有一个标准或扁平风格。

<span style="font-size:14px;">//参数:
//[IN] bFlat
//如果真该按钮将有一个平坦的风格,否则
//将有标准样式。
//默认情况下,的CButtonST按钮是平的。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
//</span>
<pre class="notranslate" id="pre138347" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE)</span>

SetAlign设置对齐设置图标/位图和文本之间的对齐类型。

<span style="font-size:14px;">// Parameters:
//     [IN]   byAlign
//            Alignment type. Can be one of the following values:
//            ST_ALIGN_HORIZ          Icon/bitmap on the left, text on the right
//            ST_ALIGN_VERT           Icon/bitmap on the top, text on the bottom
//            ST_ALIGN_HORIZ_RIGHT    Icon/bitmap on the right, text on the left
//            ST_ALIGN_OVERLAP        Icon/bitmap on the same space as text
//            By default, CButtonST buttons have ST_ALIGN_HORIZ alignment.
//     [IN]   bRepaint
//            If TRUE the control will be repainted.
//
// Return value:
//     BTNST_OK
//        Function executed successfully.
//     BTNST_INVALIDALIGN
//        Alignment type not supported.
//</span>
<pre class="notranslate" id="pre471134" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE)</span>

设置Pressed风格设置按下风格。

<span style="font-size:14px;">//参数:
//[IN] byStyle
//按下风格。可以是以下值之一:
// BTNST_PRESSED_LEFTRIGHT按下式从左至右(照常)
// BTNST_PRESSED_TOPBOTTOM冲压式从上到下
//默认情况下,的CButtonST按钮具有BTNST_PRESSED_LEFTRIGHT风格。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDPRESSEDSTYLE
//不支持追问风格。
//</span>
<pre class="notranslate" id="pre827194" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetPressedStyle(BYTE byStyle, BOOL bRepaint = TRUE)</span>

SetCheck设置复选框的状态。如果按钮不是一个复选框,这个功能已经没有意义。

<span style="font-size:14px;">//参数:
//[IN] n检查
//1检查复选框。
//0为取消选中该复选框。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
//</span>
<pre class="notranslate" id="pre580832" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetCheck(<span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nCheck, BOOL bRepaint = TRUE)</span>

GetCheck返回复选框的当前状态。如果按钮不是一个复选框,这个功能已经没有意义。

<span style="font-size:14px;">//返回值:
//复选框的当前状态。
//1,如果检查。
//0如果不检查或按钮不是一个复选框。
//</span>
<pre class="notranslate" id="pre188719" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;"><span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> GetCheck()</span>

设为默认颜色将所有颜色为默认值。

<span style="font-size:14px;">//参数:
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
//</span>
<pre class="notranslate" id="pre235466" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetDefaultColors(BOOL bRepaint = TRUE)</span>

setColor设置用于特定状态的颜色。

<span style="font-size:14px;">//参数:
//[IN] byColorIndex
//指数颜色来设置的。可以是以下值之一:
// BTNST_COLOR_BK_IN背景颜色,当鼠标移动到按钮
// BTNST_COLOR_FG_IN文本颜色,当鼠标移动到按钮
// BTNST_COLOR_BK_OUT背景颜色,当鼠标按钮外
// BTNST_COLOR_FG_OUT文本颜色,当鼠标按钮外
// BTNST_COLOR_BK_FOCUS背景色当按钮被聚焦
// BTNST_COLOR_FG_FOCUS文本颜色按钮时,聚焦
//[IN] crColor
// 新的颜色。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDINDEX
//无效的颜色索引。
//</span>
<pre class="notranslate" id="pre895325" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)</span>

GetColorReturns the color used for a particular state.

<span style="font-size:14px;">//参数:
//[IN] byColorIndex
颜色//指数来获得。
//为可用的颜色列表可以参考setColor。
//[OUT] crpColor
//一个指针,将接收到的颜色的COLORREF。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDINDEX
//无效的颜色索引。
//</span>
<pre class="notranslate" id="pre943724" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD GetColor(BYTE byColorIndex, COLORREF* crpColor)</span>

OffsetColor这个功能适用的偏移到指定的颜色的RGB分量。此功能可以被看作是一种简单的方法,使一个颜色比它的默认值较暗或较亮。

<span style="font-size:14px;">//参数:
//[IN] byColorIndex
//指数颜色来设置的。
//为可用的颜色列表可以参考setColor。
//[IN] shOffsetColor
//短值,指示偏移应用于颜色。
//这个值必须是-255到255之间。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDINDEX
//无效的颜色索引。
// BTNST_BADPARAM
//指定的偏移超出范围。
//</span>
<pre class="notranslate" id="pre880664" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD OffsetColor(BYTE byColorIndex, <span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">short</span> shOffset, BOOL bRepaint = TRUE)</span>

SetAlwaysTrack设置按钮的亮点逻辑。仅适用于平面按钮。

<span style="font-size:14px;">//参数:
//[IN] bAlwaysTrack
//如果TRUE的按钮将被高亮即使拥有它的窗口,是
//不是活动窗口。
//如果假的按钮将被高亮只有拥有它的窗口,
//为活动窗口。
//
//返回值:
// BTNST_OK
//函数成功执行。
//</span>
<pre class="notranslate" id="pre359271" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetAlwaysTrack(BOOL bAlwaysTrack = TRUE)</span>

设置光标设置当鼠标移动到按钮使用的光标。

<span style="font-size:14px;">//参数:
//[IN] nCursorId
//光标资源的ID号。
//传递null删除以前加载光标。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。
//</span>
<pre class="notranslate" id="pre569099" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetBtnCursor(<span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">int</span> nCursorId = NULL, BOOL bRepaint = TRUE)</span>

DrawBorder如果设置按钮边框必须制定。仅适用于平面按钮。

<span style="font-size:14px;">// Parameters:
//     [IN]   bDrawBorder
//            If TRUE the border will be drawn.
//     [IN]   bRepaint
//            If TRUE the control will be repainted.
//
// Return value:
//     BTNST_OK
//        Function executed successfully.
//</span>
<pre class="notranslate" id="pre89652" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD DrawBorder(BOOL bDrawBorder = TRUE, BOOL bRepaint = TRUE)</span>

DrawFlatFocus如果设置焦点矩形必须绘制平面按钮。

<span style="font-size:14px;">//参数:
//[IN] bDrawFlatFocus
//如果真焦点矩形还将绘制平面按钮。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
//</span>
<pre class="notranslate" id="pre317662" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD DrawFlatFocus(BOOL bDrawFlatFocus, BOOL bRepaint = TRUE)</span>

setToolTipText(使用资源)设置在按钮工具提示中显示文本。

<span style="font-size:14px;">// Parameters:
//     [IN]   nText
//            ID number of the string resource containing the text to show.
//     [IN]   bActivate
//            If TRUE the tooltip will be created active.
//
void SetTooltipText(int nText, BOOL bActivate = TRUE)</span>

setToolTipText

设置在按钮工具提示中显示文本。

<span style="font-size:14px;">//参数:
//[IN] lpszText
//指向包含显示文本的空值终止字符串。
//[IN] bActivate
//如果为TRUE工具提示将创建活动的。
//</span>
<pre class="notranslate" id="pre817223" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;"><span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">void</span> SetTooltipText(LPCTSTR lpszText, BOOL bActivate = TRUE)</span>

EnableBalloonTooltip允许使用气球样式显示的工具提示。做成的setToolTipText任何调用之前,此函数必须被调用。


// Return value:
//     BTNST_OK
//        Function executed successfully.
////返回值:
// BTNST_OK
//函数成功执行。
DWORD EnableBalloonTooltip()

ActivateTooltip

启用或禁用按钮提示。

<span style="font-size:14px;">//参数:
//[IN] bActivate
//如果为TRUE工具提示将被激活。
//</span>
<pre class="notranslate" id="pre717163" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;"><span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">void</span> ActivateTooltip(BOOL bEnable = TRUE)</span>

GetDefault如果按钮是默认按钮返回。

<span style="font-size:14px;">// Return value:
//     TRUE
//        The button is the default button.
//     FALSE
//        The button is not the default button.
//
BOOL GetDefault()</span>

DrawTransparent

启用透明模式。

注:此操作是不可逆的。

DrawTransparent应该创建按钮后立即调用。

不要使用trasparent按钮,直到你真的需要它(你有一个位图

背景),因为每个透明的按键使得它的背景内存副本。

这可能会带来不必要的内存使用和执行超载。

<span style="font-size:14px;">//参数:
//[IN] bRepaint
//如果真控制将被粉刷一新。
//</span>
<pre class="notranslate" id="pre240137" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;"><span class="code-keyword" style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 0, 255);">void</span> DrawTransparent(BOOL bRepaint = FALSE)</span>

设置网址SetURL设置按钮被点击时要打开的URL。

//参数:
//[IN] lpszURL
//指向包含URL中的空终止字符串。
//去掉,以传递NULL任何先前指定的URL。
//
//返回值:
// BTNST_OK
//函数成功执行。
//
<pre class="notranslate" id="pre130993" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetURL(LPCTSTR lpszURL = NULL)</span>

关联到按钮的菜单。菜单会显示单击按钮。此方法仅如果没有定义BTNST_USE_BCMENU。

<span style="font-size:14px;">//参数:
//[IN] nMenu
//菜单资源的ID号。
//传递null删除按钮任何菜单。
//[IN] hParentWnd
//处理到拥有菜单的窗口。
//这个窗口从菜单中收到的所有邮件。
//[IN] bRepaint
//如果真控制将被粉刷一新。
//
//返回值:
// BTNST_OK
//函数成功执行。
// BTNST_INVALIDRESOURCE
//无法加载指定的资源。
//</span>
<pre class="notranslate" id="pre432193" style="padding: 6px; border: 1px solid rgb(251, 237, 187); border-image: none; color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; overflow: auto; font-family: Consolas, 'Courier New', Courier, mono; font-style: normal; font-variant: normal; font-weight: normal; margin-top: 0px; word-spacing: 0px; white-space: pre-wrap; -ms-word-wrap: break-word; widows: 1; font-stretch: normal; background-color: rgb(251, 237, 187); -webkit-text-stroke-width: 0px; tab-size: 4;"><span style="font-size:14px;">DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bRepaint = TRUE)</span>

点击打开链接

时间: 2024-10-22 22:41:40

CButtonST v3.9 (MFC Flat buttons)的相关文章

【Bootstrap】2.作品展示站点

假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这个项目可以利用Bootstrap的很多内置特性,同时也将根据需要对Bootstrap进行一些定制. 1.设计目标 虽然对大屏幕中的展示效果已经胸有成竹,但我们还应该从小设备开始,强迫自己聚焦在关键的要素上面. 这个作品展示站点应该具有下列功能: □ 带Logo的可折叠的响应式导航条: □ 重点展示四

bootstrap学习总结-05 常用标签3

1 单选框,多选框 1)单选框 单选框(radio)用于从多个选项中只选择一个.设置了 disabled 属性的单选或多选框都能被赋予合适的样式.对于和多选或单选框联合使用的 <label> 标签,如果也希望将悬停于上方的鼠标设置为“禁止点击”的样式,请将 .disabled 类赋予 .radio..radio-inline. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /

boostrap按钮

bootstrap按钮 对应链接:http://v3.bootcss.com/css/#buttons 使用时添加基础类class:btn 默认样式class=btn-default,控制大小class=btn-(lg | sm | xs),没有btn-md,默认即为中等大小 一些简单的demo以及demo效果如下所示 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" c

Bootstrap快速上手 --作品展示站点

本次我们将采用Bootstrap来快速构建一个响应式的,支持多种设备的在线站点. 一.设计目标 站点具备功能: 1.带有Logo的可折叠的响应式导航条: 2.重点展示四张作品的图片传送带: 3.单栏布局中包含三块内容,每块内容都包含标题.短段落和吸引人点击阅读的大按钮: 4.页脚包含社交媒体链接 基本HTML样式  1 <!DOCTYPE html> <!-- html5标签 --> 2 3 <!--[if lt IE 7]> <html class="

Bootstrap的Button.js

查看Button.js的源代码 +function ($) { 'use strict'; // BUTTON PUBLIC CLASS DEFINITION // ============================== var Button = function (element, options) { this.$element = $(element) this.options = $.extend({}, Button.DEFAULTS, options) this.isLoadi

Linux Versus Windows, Ubuntu/Mint V XP/Vista/7

原文:http://petermoulding.com/linux_versus_windows_ubuntu_mint_v_xp_vista_7 Submitted by Peter on Tue, 2013-10-22 12:16 I am writing in Libreoffice 4.0.2.2 on Linux Mint 15 with Cinnamon 2.0. The combination beats all previous versions of Linux and Win

MFC CButtonST 在你的程序中如何使用CButtonST类

http://www.vckbase.com/module/articleContent.php?id=1135 首先在你的工程中加入如下文件: 1 2 BtnST.h BtnST.cpp 从v3.5版本开始,CButtonST支持使用BCMenu类创建菜单.为了能够使用BCMenu,你必须在 BtnST.h中加入下面二行: 1 2 #define BTNST_USE_BCMENU #include "BCMenu.h" 当然,你也必须在你的工程文件中加入下面的头文件: 1 2 BCM

MFC CButtonST简介

CButtonST使我目前见过的最强大,功能最全的CButton派生类.撰写本文的目的不在于技术的讨论,而是希望能够为各位提供关于CButtonST的使用参考,以提高编写程序的速度. 下图是用CButtonST做的几个按钮 以下是CButtonST类的一些版本信息,方便大家可以及时获得它的最新版本. 作者:Davide Calabro 邮箱地址:[email protected] 个人主页:http://www.softechsoftware.it CButtonST类主要包括BtnST.h.B

使用vs2010创建MFC C++ Ribbon程序

Your First MFC C++ Ribbon Application with Visual Studio 2010 Earlier this month, I put together my first C++ sample in about a hundred years. I did that using win32 and Visual Studio 2010. Why? Well, a surprising number of folks are doing real work