魅族m8开发 step by step(1)(让程序跑起来)
2009-11-14 22:10
441 查看
nokia 5800被偷,正好上段时间在学c++,看别人买了m8还可以,就下决心买了一个。m8虽然没iPhone强大,但在国内很受大家欢迎,目前国内的也就m8做的还比较像样。看sample,写个学习笔记,让我等无c++开发经验的学习下。
官方有sdk下载,所以开发起来还算方便.
m8 sdk被官方称为MZFC,Meizu Foundation Classes的简称,即魅族基础类库。
虽然其没有MFC这么强大,但其提供的UI确实比内置的好看多了。下面我们慢慢来完成第一个demo.
MZFC的的应用程序类为CMzApp,其用来初始化,我们必须顶一个从其派生的类,并重写Init方法.一个最简单的定义class CSample1App: public CMzApp
{
public:
virtual BOOL Init()
{
CoInitializeEx(0, COINIT_MULTITHREADED);
return TRUE;
}
};
CSample1App theApp;
这里必须先调用CoInitializeEx来初始化com组件.到这里如果测试这个程序的话,将什么也不会发生.
class CSample1MainWnd: public CMzWndEx
{
public:
protected:
virtual BOOL OnInitDialog()
{
if (!CMzWndEx::OnInitDialog())
{
return FALSE;
}
return TRUE;
}
};
创建窗体需要分两个步骤
(1)调用窗体基类的Create方法,创建窗体
(2)调用Show方法显示窗体
庆幸方法有详细注释
我们重新回到App那里class CSample1App: public CMzApp
{
public:
CSample1MainWnd m_MainWnd;
virtual BOOL Init()
{
CoInitializeEx(0, COINIT_MULTITHREADED);
m_MainWnd.Create(0,0,200,200, 0, 0, 0);
m_MainWnd.Show();
return TRUE;
}
};
CSample1App theApp;
前面7个参数是必须的,这样一个基本的程序就创建出来了,我们可以通过MzGetWorkArea方法获取工作区大小/// 求矩形宽度
#define RECT_WIDTH(rc) ((rc).right-(rc).left)
/// 求矩形高度
#define RECT_HEIGHT(rc) ((rc).bottom-(rc).top)
Ok,这样主窗体就会充满整个屏幕了,来一个简单截图,啥也没,呵呵。
官方有sdk下载,所以开发起来还算方便.
m8 sdk被官方称为MZFC,Meizu Foundation Classes的简称,即魅族基础类库。
虽然其没有MFC这么强大,但其提供的UI确实比内置的好看多了。下面我们慢慢来完成第一个demo.
一.引用MZFC库的头文件
#include <mzfc_inc.h>二.创建应用程序
不管是WinForm,还是WPF,MFC,我们都会有一个Application和窗体类,MZFC也是如此MZFC的的应用程序类为CMzApp,其用来初始化,我们必须顶一个从其派生的类,并重写Init方法.一个最简单的定义class CSample1App: public CMzApp
{
public:
virtual BOOL Init()
{
CoInitializeEx(0, COINIT_MULTITHREADED);
return TRUE;
}
};
CSample1App theApp;
这里必须先调用CoInitializeEx来初始化com组件.到这里如果测试这个程序的话,将什么也不会发生.
三.创建窗体类
窗体类从CMzWndEx类派生,与应用程序类一样,我们也要初始化(OnInitDialog)窗体.首先必须调用基类静态方法OnInitDialog初始化class CSample1MainWnd: public CMzWndEx
{
public:
protected:
virtual BOOL OnInitDialog()
{
if (!CMzWndEx::OnInitDialog())
{
return FALSE;
}
return TRUE;
}
};
四.在应用程序中启动主窗体
应用程序类和窗体类建好后,就可以在在应用程序初始化时启动主窗体了创建窗体需要分两个步骤
(1)调用窗体基类的Create方法,创建窗体
(2)调用Show方法显示窗体
庆幸方法有详细注释
我们重新回到App那里class CSample1App: public CMzApp
{
public:
CSample1MainWnd m_MainWnd;
virtual BOOL Init()
{
CoInitializeEx(0, COINIT_MULTITHREADED);
m_MainWnd.Create(0,0,200,200, 0, 0, 0);
m_MainWnd.Show();
return TRUE;
}
};
CSample1App theApp;
前面7个参数是必须的,这样一个基本的程序就创建出来了,我们可以通过MzGetWorkArea方法获取工作区大小/// 求矩形宽度
#define RECT_WIDTH(rc) ((rc).right-(rc).left)
/// 求矩形高度
#define RECT_HEIGHT(rc) ((rc).bottom-(rc).top)
RECT rcWork = MzGetWorkArea(); m_MainWnd.Create(rcWork.left,rcWork.top,RECT_WIDTH(rcWork),RECT_HEIGHT(rcWork), 0, 0, 0);
Ok,这样主窗体就会充满整个屏幕了,来一个简单截图,啥也没,呵呵。
相关文章推荐
- 魅族m8开发 step by step(1)(让程序跑起来)
- 使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)
- 使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)
- OAF二次开发step by step(四)--OAF二次开发程序的部署
- 【公开源代码】详述多用户博客程序开发过程-step by step(1)-【配置服务器】
- 魅族m8开发 step by step(3)(BasicControl)
- Spark客户端Java程序开发Step By Step
- 【公开源代码】详述多用户博客程序开发过程-step by step(2)-【会员系统(注册)】
- 魅族m8开发 step by step(2)(hello world)
- 魅族m8开发 step by step(3)(BasicControl)
- 【公开源代码】详述多用户博客程序开发过程-step by step(3)-【会员系统(登录)】
- OAF二次开发step by step(四)--OAF二次开发程序的部署
- 魅族m8开发 step by step(2)(hello world)
- 程序开发中的细节一:重视空格的缺失(The JSP specification requires that an attribute name is preceded by whitespace)
- Step by step——WinX开发入门教程-4
- Step-by-Step搭建Linux下的java开发环境
- Visual Studio 2013开发 mini-filter driver step by step (2) - 编译,部署,运行
- spring mvc + velocity 搭建实例程序maven版本并且使用的是tomcat容器而不是jetty(step by step)
- Step by Step WebMatrix网站开发之二:使用WebMatrix(2)
- Step-by-Step使用SWT开发GUI