滑块与按钮控件
此示例展示以下控件的使用方法:
滑块控件UiStatusBar 使用流程
UiStatusBar m_StatusBar;
示例代码展示:
滑块滑动时,更新滑块的位置:
WCHAR wstr[10]; wsprintf(wstr,L"%d%%",m_StatusBar.GetPadpos()); m_StcValue.SetText(wstr); m_StcValue.Invalidate(); m_StcValue.Update();
/************************************************************************/ /* * Copyright (C) Meizu Technology Corporation Zhuhai China * All rights reserved. * 中国珠海, 魅族科技有限公司, 版权所有. * * This file is a part of the Meizu Foundation Classes library. * Author: Lynn * Create on: 2009-4-25 */ /************************************************************************/ //请按照以步骤运行此实例代码: //首先, 打开VS2005/2008创建一个Win 32智能设备项目 //在项目向导中选择M8SDK, 并勾选空项目 //然后,在项目中新建一个cpp文件,将此处代码拷贝到cpp文件中 //最后,按照M8SDK的帮助文档,配置项目属性 //现在,可以运行此程序了 #include <mzfc_inc.h> //此代码演示了: //创建和初始化应用程序 //创建和初始化窗体 //使用UiButton控件,M8SDK提供了 //switch button,select button,line button,arrow button等多种按钮 //使用滑块控件(CUiStatusBar) //使用UiScrollWin放置按钮 #define MZ_IDC_STATUSBAR 100 #define MZ_IDC_SCROLLWIN 101 #define MZ_IDC_BTNLINE_START 102 #define MZ_IDC_BTNLINE_END 106 #define MZ_IDC_STATIC_VALUE 108 #define MZ_IDC_STATIC_START 109 #define MZ_IDC_STATIC_END 113 #define MZ_IDC_BTNSWITCH 114 #define MZ_IDC_BTNCLEAR 115 #define MZ_IDC_BTNDELETE 116 #define MZ_IDC_BTNARROW 117 #define MZM_HEIGHT_BUTTON 80 static WCHAR* staticTxt[]= { L"滑块",L"开关按钮",L"清零",L"查看结果",L"" }; class CSampleWnd_StatusBar : public CMzWndEx { public: UiStatusBar m_StatusBar; UiScrollWin m_ScrollWin; UiButton m_BtnLine[5]; //0-5是划线按钮 UiButton m_BtnSwitch; UiButton m_BtnClear; UiButton m_BtnDel; UiButton m_BtnArrow; UiStatic m_StcValue; UiStatic m_Static[5]; protected: virtual BOOL OnInitDialog() { if (!CMzWndEx::OnInitDialog()) { return FALSE; } m_ScrollWin.SetID(MZ_IDC_SCROLLWIN); m_ScrollWin.SetPos(0,0,GetWidth(),GetHeight()); AddUiWin(&m_ScrollWin); //设置划线按钮属性 for (int i= 0;i<= 4;i++) { m_BtnLine[i].SetPos(0,i*MZM_HEIGHT_BUTTON,GetWidth(),MZM_HEIGHT_BUTTON); m_BtnLine[i].SetID(MZ_IDC_BTNLINE_START+i); m_BtnLine[i].SetButtonType(MZC_BUTTON_LINE_TOP); m_BtnLine[i].LockState(true); //点击后显示高亮 if ( i == 3) { m_BtnLine[i].LockState(false); } m_ScrollWin.AddChild(&m_BtnLine[i]); m_Static[i].SetText(staticTxt[i]); m_Static[i].SetID(MZ_IDC_STATIC_START+i); m_Static[i].SetPos(10,i*MZM_HEIGHT_BUTTON,100,MZM_HEIGHT_BUTTON); m_Static[i].SetDrawTextFormat(DT_LEFT|DT_VCENTER); m_ScrollWin.AddChild(&m_Static[i]); } //设置滑块属性 m_StatusBar.SetPos(GetWidth()-350,25,260,20); m_StatusBar.SetID(MZ_IDC_STATUSBAR); m_StatusBar.SetRange(0,100); m_StatusBar.SetPadpos(50); m_ScrollWin.AddChild(&m_StatusBar); //使用UiStatic显示滑块位置 m_StcValue.SetID(MZ_IDC_STATIC_VALUE); m_StcValue.SetPos(GetWidth()-80,25,60,20); m_StcValue.SetText(L"50%"); m_ScrollWin.AddChild(&m_StcValue); //设置选择按钮属性 m_BtnSwitch.SetID(MZ_IDC_BTNSWITCH); m_BtnSwitch.SetPos(GetWidth()-150,MZM_HEIGHT_BUTTON,150,MZM_HEIGHT_BUTTON); m_BtnSwitch.SetButtonType(MZC_BUTTON_SWITCH); m_BtnSwitch.SetButtonMode(MZC_BUTTON_MODE_HOLD); m_ScrollWin.AddChild(&m_BtnSwitch); //设置灰色小按钮属性 m_BtnClear.SetID(MZ_IDC_BTNCLEAR); m_BtnClear.SetPos(GetWidth()-120,MZM_HEIGHT_BUTTON*2+10,100,60); m_BtnClear.SetButtonType(MZC_BUTTON_DELETE); m_BtnClear.SetTextColor(TCI_BUTTON_TEXT); m_BtnClear.SetText(L"复位"); m_ScrollWin.AddChild(&m_BtnClear); //设置箭头按钮属性 m_BtnArrow.SetID(MZ_IDC_BTNARROW); m_BtnArrow.SetPos(GetWidth()-70,MZM_HEIGHT_BUTTON*3,70,MZM_HEIGHT_BUTTON); m_BtnArrow.SetButtonType(MZC_BUTTON_ARROW_RIGHT); m_ScrollWin.AddChild(&m_BtnArrow); return TRUE; } virtual LRESULT MzDefWndProc(UINT message, WPARAM wParam, LPARAM lParam) { switch(wParam) { case MZ_IDC_STATUSBAR: { switch(message) { //滑块滑动时,更新显示滑块位置 case MZ_MOUSE_DOWN_MOVE: { WCHAR wstr[10]; wsprintf(wstr,L"%d%%",m_StatusBar.GetPadpos()); m_StcValue.SetText(wstr); m_StcValue.Invalidate(); m_StcValue.Update(); } break; } } break; case MZ_IDC_BTNCLEAR: { switch(message) { //点击复位按钮 case MZ_WM_COMMAND: { m_StatusBar.SetPadpos(0); m_StcValue.SetText(L"0%"); m_BtnSwitch.SetState(0); Invalidate(); UpdateWindow(); printf("0x%x\n",message); } break; } } break; } return CMzWndEx::MzDefWndProc(message,wParam,lParam); } private: }; class CSampleApp: public CMzApp { public: //主窗体 CSampleWnd_StatusBar m_MainWnd; //初始化应用程序 virtual BOOL Init() { 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(); return TRUE; } }; // 全局应用程序变量 CSampleApp theApp;