突然想起android与mfc差异
两者都可以算作是客户端程序,都是做上位机用的。而且都是被动执行。
相同点:
1、MFC中,它是由 project的名字 里面的某个成员函数来初始化,窗体,以及窗体里面的变量。
后面都是监听消息循环。数据的传递通过全局变量、成员变量来搞定。
2、Android中,数据一般都是通过成员变量,或者intent携带一些数据来实现。比如,广播等,都是可以携带数据的。
还有就是android当中,有做好的一套消息传递机制,也有子线程等概念。操作起来还算是比较方便。
不同点:
- 布局文件
.xml vs .rc
- 图标资源
Res/drawable vs res
- 一些常量
Android中放在xml中,有专门的存放常量的地方。
MFC也有类似StringTable的机制,可以和android常量文件对应。但是MFC是个大杂烩。
- 如何找到所需要的控件
Android当中通过 findviewByid来找到,然后强制转换到我们需要的类型。这样我们就可以使用了。
MFC当中其实也有类似的机制, MFC里面在 DoDataExchange方法里面,将控件和类的变量名联系起来,然后通过类的变量名找到这个控件。
- 文本控件的值的设置和获取
Android当中直接有getText和setText。
MFC当中,有GetDlgItemText()和SetDlgItemText方式来实现,其实是获取到一个控件的句柄,相当于这个控件的指针。其有两种形式,控件类型和值类型。
- 事件
Android当中一般调用 setxxxListenner()去实现。
MFC当中一般调用BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP来实现。添加对应的事件这种方式来增加事件处理。
突然想起android与mfc差异的更多相关文章
- ionic默认样式android和ios差异
ionicframework中android和ios在默认样式上有一些不同的地方,官方文档中都有说明,但是经常会想不起. 一.差异: 1.tab位置,$ionicConfigProvider, tab ...
- android:layout_gravity和android:gravity属性差异
gravity的中文意思就是"重心",就是表示view横向和纵向的停靠位置 android:gravity:是对view控件本身来说的,是用来设置view本身的文本应该显示在vie ...
- 在Android中使用OpenGL ES进行开发第(一)节:概念先行
一.前期基础是知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGL ES绘制 ...
- Android 适配知识点
转载:https://gold.xitu.io/post/58451c1d8e450a006c0f1c74 支持多种屏幕 Android 可在各种具有不同屏幕尺寸和密度的设备上运行.对于 应用,And ...
- 创建支持多种屏幕尺寸的Android应用
Android涉及各种各样的支持不同屏幕尺寸和密度的设备.对于应用程序,Android系统通过设备和句柄提供了统一的开发环境,大部分工作是校正每一个应用程序的用户界面到它显示的屏上.与此同时,系统提供 ...
- Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分 (转载)
本文参考了谷歌开发者文档:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#provisional 如果 ...
- Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分 标签: build targetminSdkVersiont ...
- Amazon的Fire Phone之于Android开发者
在上周Amazon也耐不住加入了手机竞争行列之中,发布了自己的Fire Phone,于是Android家族又多了一位变种成员,Android系统的碎片化程度也进一步加剧.因为工作的关系,我有幸在上个月 ...
- 【转】针对iOS VS. Android开发游戏的优劣——2013-08-25 17
http://game.dapps.net/gamedev/experience/8670.html 问题:如果你正在一个新工作室开发一款新的平板/手机游戏,你会选择iOS还是Android? 回答: ...
随机推荐
- 解决虚拟机linux端mysql数据库无法远程访问
解决虚拟机linux端mysql数据库无法远程访问 1. 在控制台执行 mysql -u root -p mysql,CentOS系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台 ...
- iOS-UI分析利器--Reveal安装破解以及简单使用
前言:在 iOS 开发中,我们有时很希望有一款类似 Web 开发中的 UI Debug 工具(例如:Firebug),让我们能够实时查看 UI 的结构,还可以实时更改某个 UIView 的位置和大小的 ...
- iOS设计模式简介
开闭原则: 一个模块的修改,对拓展开放而对修改关闭. 举个例子:有一个类在项目中很多地方被使用了,但是由于需求,想对这个类进行拓展,这里可以使用继承拓展出子类,可以对子类进行修改,尽量不要修改原来的类 ...
- Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全
Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全 1. #====提升抽象层次1 2. #----使用通用单词1 3. #===使用术语..1 4. ...
- Effective Java 14 In public classes, use accessor methods, not public fields
Principle To offer the benefits of encapsulation you should always expose private field with public ...
- Effective Java 68 Prefer executors and tasks to threads
Principle The general mechanism for executing tasks is the executor service. If you think in terms o ...
- MySQL数据库初识(二)
8. 向数据表中插入数据记录(INSERT): 向数据表中插入数据记录有两种方法: 基本语法1:INSERT INTO 数据表 (字段名1,字段名2,字段名3……字段名n) VALUES (数据值1, ...
- 活动与服务onbind()
- LINUX 用户’nobody’
1>Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在系统安装后就有的,就像Windows系统中的内置帐户一样. 2>它们是用来完成特定任务的,比如 ...
- Spring中AOP原理,源码学习笔记
一.AOP(面向切面编程):通过预编译和运行期动态代理的方式在不改变代码的情况下给程序动态的添加一些功能.利用AOP可以对应用程序的各个部分进行隔离,在Spring中AOP主要用来分离业务逻辑和系统级 ...