魅族m8开发 step by step(1)(让程序跑起来)

本文介绍使用MZFC库在M8设备上进行应用开发的过程。包括如何引用MZFC库头文件、创建应用程序及窗体类,并在应用程序中启动主窗体。通过简单的步骤演示了如何使窗体充满整个屏幕。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    nokia 5800被偷,正好上段时间在学c++,看别人买了m8还可以,就下决心买了一个。m8虽然没iPhone强大,但在国内很受大家欢迎,目前国内的也就m8做的还比较像样。看sample,写个学习笔记,让我等无c++开发经验的学习下。

官方有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方法显示窗体

庆幸方法有详细注释

image

我们重新回到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,这样主窗体就会充满整个屏幕了,来一个简单截图,啥也没,呵呵。

image

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值