魅族m8开发 step by step(1)(让程序跑起来)
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方法显示窗体
庆幸方法有详细注释
我们重新回到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,这样主窗体就会充满整个屏幕了,来一个简单截图,啥也没,呵呵。
转载于:https://www.cnblogs.com/Clingingboy/archive/2009/11/14/1603160.html
魅族m8开发 step by step(1)(让程序跑起来)相关推荐
- 魅族M8开发初识及一点思考
近日比较寂寞,公司的开发任务也比较轻松.于是向同学低价买了台2手魅族M8玩玩,初次接触惊叹于M8惊艳的电容触摸屏,感觉比Iphone的还好点,这就激起了我对研究这款机器的兴趣.下面就是我这几天研究的心 ...
- ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题...
面向对象的程序设计(Object-Oriented Programming,简记为OOP)是一种功能非常强大的编程方法,立意于创建软件重用代码,以类为基础去思考编程问题. ActionScript 3 ...
- ActionScript 3.0 Step By Step系列(四):来自面向对象开发之前的呐喊:“学会写可重用的代码”...
增强代码的可重用能力,从创建可重用的代码开始,可重用的代码则是通过从现有代码中重构加以封装,使其成为功能单一的可复用代码块.这句话笼统点说便是"封装"或"抽象" ...
- C++开发WPF,Step by Step
C++开发WPF,Step by Step 示例代码 使用C++来开发WPF,主要是如何在MFC(Win32)的窗口中Host WPF的Page.下面我就做个详细的介绍. 一.创建工程, 由于MFC的 ...
- 为魅族M8手机开发的围棋打谱软件(M8WeiqiPu)发布0.1版
M8围棋谱(M8WeiqiPu) v0.1 为魅族M8手机开发的围棋打谱软件,还在开发过程中,目前功能不全,但基本功能可用.现在仅支持SGF格式的围棋棋谱. 可到魅族官方论坛下载:http://bbs ...
- 为魅族M8手机开发的围棋打谱软件(M8WeiqiPu)发布0.8版,多图
<M8围棋谱>v0.8,是我(liigo)为魅族M8手机开发的围棋打谱软件,还在开发过程中,目前功能不全,但基本功能可用. 基本功能:打开并解析SGF棋谱,单步向前向后,落子音效,自动提子 ...
- 为魅族M8手机开发软件《M8空中警报》(M8AirAlarm) ,已开源
<M8空中警报>(M8AirAlarm) v1.0 作者:liigo, 2009/5, http://blog.csdn.net/liigo 当您的魅族M8手机不慎跌落时,本软件将在M8落 ...
- 【Step By Step】将Dotnet Core部署到Docker下
一.使用.Net Core构建WebAPI并访问Docker中的Mysql数据库 这个的过程大概与我之前的文章<尝试.Net Core-使用.Net Core + Entity FrameWor ...
- NHibernate Step by Step:序篇 (转)
原文出处:http://www.cnblogs.com/abluedog/archive/2006/04/15/375676.html 原文作者:abluedog 很久以前,你可能习惯了connect ...
最新文章
- FMDatabase常见的几个操作
- Why Did the Cow Cross the Road III(树状数组)
- golang 数组 切片 下标范围
- Play框架的用户验证。
- 2019年最流行的10个前端框架
- 小时级的进度监控工具
- LSTM(序列标注,自实现)
- python爬虫自动更换ip_Python 爬虫使用动态切换ip防止封杀
- 泰坦尼克号数据集_机器学习入门—泰坦尼克号生存率预测
- linux IP DNS 配置
- 中国移动老功臣退休致辞:工作结束了 人生没结束
- Day08- team、iptables、firewall
- mybatis 遍历数组_Mybatis中别名、插件与数据源配置
- 股票市场的本质是为优质企业提供融资的平台
- c中的结构体嵌套问题_C中的结构
- absolute之后居中宽度自适应
- VassistX番茄助手使用技巧
- win10+VS2013+OPENCV如何配置于仕琪人脸检测算法
- 百词斩不复习_百词斩是不是真的好用?
- Flowchat 流程图在Markdown中的使用(不同编辑器有细微区别)
热门文章
- 试题7 算法训练 P0505(最右边的那个非0的数字)
- Codeforces Round #383 (Div. 1): D. Arpa’s letter-marked tree…(dsu on tree+状压)
- [深度学习] 深度学习常见概念
- jQuery form插件使用详解
- xilinx sdk在Debug模式下根据地址在内存里观察值
- 电磁场中场点和源点及▽(R)▽(1/R)▽.▽(1/R)
- 详解汇编里的单步中断-T使用寄存器标志位TF和IF
- Crackme019
- Python库安装注意事项
- Software--Architecture--SOA Factory