魅族m8开发 step by step(3)(BasicControl)
2009-11-15 00:10
337 查看
接上篇,下面看下来就比较简单了,本示例为牵涉到下面新的控件
UiSingleLineEdit 其实就是TextBox
UiToolbar_Text 一个ToolBar
CPopupMenu 一个弹出菜单
一.首先窗体初始化
我们先看来toolbar三个按钮的作用.
1.Exit 推出程序if (nIndex==0)
{
PostQuitMessage(0);
return;
}
2.Menu 创建一个PopupMenu
CPopupMenu 用法
首先通过AddItem方法添加按钮,然后用Create创建Menu,最后用DoModal弹出菜单,通过返回的ID参数判断按钮触发事件if (nIndex==1)
{
// 弹?出?菜?单?
CPopupMenu ppm;
struct PopupMenuItemProp pmip;
pmip.itemCr = MZC_BUTTON_PELLUCID;
pmip.itemRetID = IDC_PPM_CANCEL;
pmip.str = L"Cancel";
ppm.AddItem(pmip);
pmip.itemCr = MZC_BUTTON_ORANGE;
pmip.itemRetID = IDC_PPM_OK;
pmip.str = L"OK";
ppm.AddItem(pmip);
RECT rc = MzGetWorkArea();
rc.top = rc.bottom - ppm.GetHeight();
ppm.Create(rc.left,rc.top,RECT_WIDTH(rc),RECT_HEIGHT(rc),m_hWnd,0,WS_POPUP);
int nID = ppm.DoModal();
if (nID==IDC_PPM_OK)
{
// do what you want...
}
if (nID==IDC_PPM_CANCEL)
{
// do what you want...
}
return;
}
3.Hide button 用于显示和隐藏按钮
注意:UI更新方法(光设置属性是无法更新UI的)
两种方法
(1)局部更新Invalidate
(2)整体更新(更新与控件相关的窗体)Updateif (nIndex==2)
{
m_btn.SetVisible(!m_btn.IsVisible());
m_btn.Invalidate();
m_btn.Update();
if (m_btn.IsVisible())
m_Toolbar.SetButtonText(2, L"Hide button");
else
m_Toolbar.SetButtonText(2, L"Show button");
m_Toolbar.Invalidate();
m_Toolbar.Update();
return;
}
三.MZFC字符串类CMzString
封装了对宽字符的处理,由于用到比较多,基本数据类型的操作需要了解下.来看下获取文本框那个按钮的事件
C_Str方法用于获取字符串指针case MZ_IDC_TESTBTN1:
{
CMzString str(64+m_Edit.GetTextLen());
// 格式化字符串
wsprintf(str.C_Str(), L"You'd input:/n%s", m_Edit.GetText().C_Str());
// 弹出消息框
MzMessageBoxEx(m_hWnd, str.C_Str(), L"", MB_OK, false);
}
break;
这个示例就到这里
UiSingleLineEdit 其实就是TextBox
UiToolbar_Text 一个ToolBar
CPopupMenu 一个弹出菜单
一.首先窗体初始化
// 从?CMzWndEx 派?生?的?主?窗?口?类? class CSample1MainWnd: public CMzWndEx { MZ_DECLARE_DYNAMIC(CSample1MainWnd); public: // 窗?口?中?的?按?钮?控?件? UiButton m_btn; // 文?字?按?钮?工?具?条? UiToolbar_Text m_Toolbar; // 单?行?编?辑?器? UiSingleLineEdit m_Edit; protected: // 窗?口?的?初?始?化? virtual BOOL OnInitDialog() { // 必?须?先?调?用?基?类?的?初?始?化? if (!CMzWndEx::OnInitDialog()) { return FALSE; } // 初?始?化?单?行?编?辑?控?件?,?并?添?加?到?窗?口?中? m_Edit.SetPos(MZM_MARGIN_MAX,MZM_MARGIN_MAX,GetWidth()-MZM_MARGIN_MAX*2,70); m_Edit.SetID(MZ_IDC_TESTBTN1); //you must set an unique ID for a edit control m_Edit.SetTip(L"Please enter text..."); // set the tips text m_Edit.SetTextColor(RGB(255,0,0)); // you could also set the color of text AddUiWin(&m_Edit); // don't forget to add the control to the window // 初?始?化?按?钮?控?件?,?并?添?加?到?窗?口?中? m_btn.SetButtonType(MZC_BUTTON_PELLUCID); m_btn.SetPos(100,130,280,100); m_btn.SetID(MZ_IDC_TESTBTN1); m_btn.SetText(L"Get Edit's Text"); //m_btn.SetTextColor(RGB(0,255,0)); AddUiWin(&m_btn); // 初?始?化?文?字?工?具?条?,?并?添?加?到?窗?口?中? m_Toolbar.SetPos(0,GetHeight()-MZM_HEIGHT_TEXT_TOOLBAR,GetWidth(),MZM_HEIGHT_TEXT_TOOLBAR); m_Toolbar.SetButton(0, true, true, L"Exit"); m_Toolbar.SetButton(1, true, true, L"Menu"); m_Toolbar.SetButton(2, true, true, L"Hide button"); m_Toolbar.SetID(MZ_IDC_TOOLBAR1); AddUiWin(&m_Toolbar); return TRUE; }
二.加命令
我们先看来toolbar三个按钮的作用.
1.Exit 推出程序if (nIndex==0)
{
PostQuitMessage(0);
return;
}
2.Menu 创建一个PopupMenu
CPopupMenu 用法
首先通过AddItem方法添加按钮,然后用Create创建Menu,最后用DoModal弹出菜单,通过返回的ID参数判断按钮触发事件if (nIndex==1)
{
// 弹?出?菜?单?
CPopupMenu ppm;
struct PopupMenuItemProp pmip;
pmip.itemCr = MZC_BUTTON_PELLUCID;
pmip.itemRetID = IDC_PPM_CANCEL;
pmip.str = L"Cancel";
ppm.AddItem(pmip);
pmip.itemCr = MZC_BUTTON_ORANGE;
pmip.itemRetID = IDC_PPM_OK;
pmip.str = L"OK";
ppm.AddItem(pmip);
RECT rc = MzGetWorkArea();
rc.top = rc.bottom - ppm.GetHeight();
ppm.Create(rc.left,rc.top,RECT_WIDTH(rc),RECT_HEIGHT(rc),m_hWnd,0,WS_POPUP);
int nID = ppm.DoModal();
if (nID==IDC_PPM_OK)
{
// do what you want...
}
if (nID==IDC_PPM_CANCEL)
{
// do what you want...
}
return;
}
3.Hide button 用于显示和隐藏按钮
注意:UI更新方法(光设置属性是无法更新UI的)
两种方法
(1)局部更新Invalidate
(2)整体更新(更新与控件相关的窗体)Updateif (nIndex==2)
{
m_btn.SetVisible(!m_btn.IsVisible());
m_btn.Invalidate();
m_btn.Update();
if (m_btn.IsVisible())
m_Toolbar.SetButtonText(2, L"Hide button");
else
m_Toolbar.SetButtonText(2, L"Show button");
m_Toolbar.Invalidate();
m_Toolbar.Update();
return;
}
三.MZFC字符串类CMzString
封装了对宽字符的处理,由于用到比较多,基本数据类型的操作需要了解下.来看下获取文本框那个按钮的事件
C_Str方法用于获取字符串指针case MZ_IDC_TESTBTN1:
{
CMzString str(64+m_Edit.GetTextLen());
// 格式化字符串
wsprintf(str.C_Str(), L"You'd input:/n%s", m_Edit.GetText().C_Str());
// 弹出消息框
MzMessageBoxEx(m_hWnd, str.C_Str(), L"", MB_OK, false);
}
break;
这个示例就到这里
相关文章推荐
- 魅族m8开发 step by step(3)(BasicControl)
- 魅族m8开发 step by step(2)(hello world)
- 魅族m8开发 step by step(1)(让程序跑起来)
- 魅族m8开发 step by step(1)(让程序跑起来)
- 魅族m8开发 step by step(2)(hello world)
- 深入浅出C#2008从入门到提高Step By Step(五)Windows应用程序常用控件类(3)-Control
- Visual Studio 2013开发 mini-filter driver step by step (2) - 编译,部署,运行
- Step by step teach yourself ruby (一) -- 在ubuntu下搭建语言和开发环境
- Step by Step WebMatrix网站开发之二:使用WebMatrix(2)
- J2ME手机游戏贪吃蛇开发Step By Step
- FLEX ActionScript 游戏开发教程之[贪吃蛇]Step By Step
- C++开发WPF,Step by Step
- 利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列一 附源码)
- PowerShell Step By Step (1): Basic Syntax
- 使用CruiseControl创建你的Build Grid - CruiseControl Step by Step (5)
- 自定义Server Control中捆绑JS文件 Step by Step
- Step by Step WebMatrix网站开发之一:Webmatrix安装
- Step by Step WebMatrix网站开发之二:使用WebMatrix(1)
- 第四章 Hadoop2.x应用开发step by step——Hadoop2.x集群环境
- Windows Store apps开发[14]Step by Step已矣