新按钮工具条控件示例(24_UiButtonBar)

新按钮工具条控件

此示例展示以下控件的使用方法:

新按钮工具条控件UiButtonBar 的使用流程

示例代码展示:

24_UiButtonBar_1.png
24_UiButtonBar_2.png

初始化 UiButtonBar 控件,设置了两个按钮

m_ButtonBar.SetID(MZ_IDC_BUTTONBAR);
m_ButtonBar.SetPos(0, 0, GetWidth(), MZM_HEIGHT_BUTTONBAR);
m_ButtonBar.SetButton(0, true, true, L"Button1");
m_ButtonBar.SetButton(1, true, true, L"Button2");

处理 UiButtonBar 的命令消息,点击按钮显示相应的内容

case MZ_IDC_BUTTONBAR:
{
    int index = lParam;
    if (index == 0)
    {
        RemoveUiWin(&m_Button2);
        AddUiWin(&m_Button1);
    }
    else if (index == 1)
    {
        RemoveUiWin(&m_Button1);
        AddUiWin(&m_Button2);
    }

    Invalidate();
    break;
}

完整示例:

/************************************************************************/
/*
 * Copyright (C) Meizu Technology Corporation Zhuhai China
 * All rights reserved.
 * 中国珠海, 魅族科技有限公司, 版权所有.
 *
 * This file is a part of the Meizu Foundation Classes library.
 * Author:    
 * Create on: 2009-12-04
 */
/************************************************************************/

//请按照以步骤运行此实例代码:
//首先, 打开VS2005/2008创建一个Win 32智能设备项目
//在项目向导中选择M8SDK, 并勾选空项目
//然后,在项目中新建一个cpp文件,将此处代码拷贝到cpp文件中
//最后,按照M8SDK的帮助文档,配置项目属性
//现在,可以运行此程序了

// 包含MZFC库的头文件
#include <mzfc_inc.h>

//此代码演示了:
//  创建和初始化应用程序
//  创建和初始化窗体
//  按钮工具条控件 UiButtonBar 的使用及其命令消息的处理

#define MZ_IDC_BUTTONBAR    101
#define MZ_IDC_TESTBTN1                   102
#define MZ_IDC_TESTBTN2                   103
#define MZ_IDC_TESTTOOLBAR  104

// 从 CMzWndEx 派生的主窗口类
class CSampleMainWnd : public CMzWndEx
{
    MZ_DECLARE_DYNAMIC(CSampleMainWnd);
public:
    UiButtonBar m_ButtonBar;
    UiButton m_Button1;
    UiButton m_Button2;
    UiToolBarPro m_TestToolBar;

protected:
    // 窗口初始化
    virtual BOOL OnInitDialog()
    {
        // 必须先调用基类的初始化
        if (!CMzWndEx::OnInitDialog())
        {
                      return FALSE;
        }

        // 初始化 UiButton 控件
        m_Button1.SetButtonType(MZC_BUTTON_GREEN);
        m_Button1.SetID(MZ_IDC_TESTBTN1);
        m_Button1.SetPos(100, 250, 280, 100);
        m_Button1.SetText(L"Button_1");
        AddUiWin(&m_Button1);

        m_Button2.SetButtonType(MZC_BUTTON_ORANGE);
        m_Button2.SetID(MZ_IDC_TESTBTN2);
        m_Button2.SetPos(100, 250, 280, 100);
        m_Button2.SetText(L"Button_2");

        // 初始化 UiButtonBar 控件
        m_ButtonBar.SetID(MZ_IDC_BUTTONBAR);
        m_ButtonBar.SetPos(0, 0, GetWidth(), MZM_HEIGHT_BUTTONBAR);
        m_ButtonBar.SetButton(0, true, true, L"Button1");
        m_ButtonBar.SetButton(1, true, true, L"Button2");
        AddUiWin(&m_ButtonBar);

        // 初始化 UiToolBarPro 控件
        m_TestToolBar.SetID(MZ_IDC_TESTTOOLBAR);
        m_TestToolBar.SetPos(0, GetHeight() - MZM_HEIGHT_TOOLBARPRO, GetWidth(), MZM_HEIGHT_TOOLBARPRO);
        m_TestToolBar.SetButton(TOOLBARPRO_LEFT_TEXTBUTTON, true, true, L"Exit");
        AddUiWin(&m_TestToolBar);

        return TRUE;
    }

    // 重载 MZFC 的命令消息处理函数
    virtual void OnMzCommand(WPARAM wParam, LPARAM lParam)
    {
        UINT_PTR id = LOWORD(wParam);
        switch(id)
        {
                  // 处理 UiButtonBar 的消息
        case MZ_IDC_BUTTONBAR:
            {
                int index = lParam;
                if (index == 0)
                {
                    RemoveUiWin(&m_Button2);
                    AddUiWin(&m_Button1);
                }
                else if (index == 1)
                {
                    RemoveUiWin(&m_Button1);
                    AddUiWin(&m_Button2);
                }

                Invalidate();
                break;
            }
        // 处理 UiToolBarPro 的消息
        case MZ_IDC_TESTTOOLBAR:
            {
                int index = lParam;
                if (index == TOOLBARPRO_LEFT_TEXTBUTTON)
                {
                    PostQuitMessage(0);
                }
                break;
            }
        }
    }
};

MZ_IMPLEMENT_DYNAMIC(CSampleMainWnd);

// 从 CMzApp 派生的应用程序类
class CSampleMainApp : public CMzApp
{
public:
    // 应用程序的主窗口
    CSampleMainWnd m_MainWnd;

    // 应用程序的初始化
    virtual BOOL Init()
    {
        // 初始化 COM 组件
        CoInitializeEx(0, COINIT_MULTITHREADED);

        // 创建主窗口
        RECT rcWork = MzGetWorkArea();
        m_MainWnd.Create(rcWork.left, rcWork.top, RECT_WIDTH(rcWork), RECT_HEIGHT(rcWork), 0, 0, 0);
        m_MainWnd.SetBgColor(MzGetThemeColor(TCI_WINDOW_BG));
        m_MainWnd.Show();

        // 成功则返回 TRUE
        return TRUE;
    }
};

// 全局的应用程序对象
CSampleMainApp theApp;

Generated at Tue Feb 9 15:09:54 2010 for Meizu M8 SDK Documentation by  doxygen 1.6.1