• Android与MFC编程的一些漫谈


    前一段时间研究了一下MFC与Android,刚入门了基本的东西,对于深入理解还是差很多的。

    先来说说最近的理解吧(博客主要还是记录自己的东西,防止以后忘记了,也顺别作为万千网名中的一个,为他人贡献一点点小福利):

    GUI编程中的一些概念:控件,资源,布局,等等。

    • 布局方式:

      MFC 中布局是通过拖拽控件完成,这个相当于Android中的RelativeLayout布局,这个是很自由的。而在Android开发中,布局文件时通过一个.xml文件实现配置,也可以通过拖放完成。布局方式有很多种,比如LinearLayout,GridLayout,等等。这个与原生态Java编程十分类似。

    • 资源管理:

    对于资源的管理,两者也采用类似的办法。

    MFC在资源管理器中对每个控件分配一个ID(eg:IDC_CONTROLNAME,IDB_Bitmap1...),通过CWnd的类方法获取对应ID的窗体指针:

    CButton *btn = (CButton *)GetDlgItem(IDC_BUTTON1);
    

     在Android中,控件是通过.xml文件配置并在gen文件夹下的class R中生成相应的ID资源,采用同样的方法,也可以获取相关的资源的引用(Java 中没有指针的概念)

    Button btn =(Button)findViewById(R.id.button1);
    
    •  类的继承方式

    MFC中的类都是继承CWnd基类,CWnd提供了窗体类的基本操作。Android类中继承了View类,这个也是UI的基类,如图所示:

    这里面有很多类比的方式可以去借鉴。对于MFC和Android(甚至说MFC和java)这两个不相干的,还是能找到相同点的去学习。

    • 绘图方法

    绘图的基本要素是:画板,画笔,颜色,辅助工具等等。

    MFC绘图采用GDI方式(往后支持GDI+),基本思路是获取某个控件的设备描述符句柄,然后通过CPen,CBrush,CFont等一些辅助的类控制绘图的效果。设备描述符(DC)中包含了画板(Client客户区),CPen 等辅助类包括了颜色画笔等,通过这些工具,便能完成绘图。MFC中:CDC,CClientDC,CWindowDC,CPaintDC。。。

    Android中的画板为View类,View提供了绘图的区域。Canvas作为画笔,控制了基本绘图的信息。Paint类作为辅助信息,提供诸如对其,绘图方式等辅助信息;Color类则是Android绘图的调色板。通过这三个类,完成了基本的绘图方式。

    比较两者的绘图,我们也能很清楚的理解基本要素是如何存在的。之后的GDI+通过Graphic类,实现了画布类,这个有点类似于Canvas。个人觉得MFC的GDI概念理解起来比较麻烦。

    结:这也算是我的处女作,为了是给自己博客之路开个头。写的不好的还望多多指教。

  • 相关阅读:
    event.relatedTarget、event.fromElement、event.toElement
    before/after伪类常见用法
    $.getJSON 跨域
    ExtJS中store.findExact
    C#生成6位随机验证码
    C#验证手机号
    jQuery轮播图的事项 代码详细,容易理解。。。。谢谢观赏
    ES6 中 static 的this 丢失问题解决办法 简单明了 备注清晰 谢谢欣赏
    ES6 中 static 的this 问题 简单明了 备注清晰 谢谢欣赏
    ES6 中用class创建img 详细明了,步骤清晰,解释完美,谢谢欣赏
  • 原文地址:https://www.cnblogs.com/shangzhimeng/p/Android_vs_MFC.html
Copyright © 2020-2023  润新知