ITPub博客

首页 > 应用开发 > IT综合 > 浅谈eMbedded Visual C++4.0对于Windows CE.net 的开发 (转)

浅谈eMbedded Visual C++4.0对于Windows CE.net 的开发 (转)

原创 IT综合 作者:amyz 时间:2007-10-17 18:48:56 0 删除 编辑
浅谈eMbedded Visual C++4.0对于Windows CE.net 的开发 (转)[@more@] 

浅谈eMbedded Visual C++4.0对于windows CE.NET 的开发XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

 

摘要:说明利用eMbedded Visual C++4.0实现嵌入式Windows CE.net 的开发技术,介绍具体实现的思想和方案。

关键词:嵌入式系统 Windows CE.net eMbedded Visual C++4.0

 

本文主要讲述如何使用eMbwedded Visual C++4.0 来进行 Windows CE.net的开发?如果你已经能熟练应用 Microsoft Visual C++ 这个微软 Windows 平台上最优秀的开发工具,那么这个针对于嵌入式Windows CE.net的开发环境eMbwedded Visual C++4.0对你来说也就相对简单了。

 

关于eMbedded Visual C++4.0向导

 

eMbedded Visual C++4.0能使你开发和Visual C++相似的应用程序的在Windows CE.net上运行的应用程序,另外,还包括你所开发对于Windows CE平台和装置的应用程序时所用的帮助工具。你要弄明白目标环境、Windows CE.net和新的向导的特殊性。这里我们将重点介绍一下“Windows CE.net 应用程序向导(Wizards)”。

eMbedded Visual C++4.0 中所带的应用程序向导是一个非常有用的工具。一共有七种类型的新的向导,它们的使用方法和 Visual C++ 中常规的向导没什么区别,只是它们是用于 Windows CE.net 开发的。你可以利用它们来快速地创建一个基本的应用程序、动态连接库(DLL)或者组件应用程序外壳。这七种新的向导分别是:WCE 应用程序; WCE MFC向导(.dll);WCE 动态连接库 ;WCE 静态连接库向导;WCE ATL com 应用向导; WCE MFC ActiveX 控件向导和WCE MFC向导(.exe)。相比于台式计算机系统,win32 api(包括MFC)都有很大的限制,例如,Windows CE系统中很多行为都不是很明显,即使她也允许你象在台式PC机那样操作。 当然随着 Windows CE.net 的普及,必然会有更多的 eMbedded Visual C++4.0 向导出现的。

使用eMbedded Visual C++4.0编写第一个 CE 应用程序

 

以下我们将通过一个简单的例子来说明如何使用 eMbedded Visual C++4.0 的 WCE MFC 应用向导来(EXE) 来开发一个 CE 应用程序。eMbedded Visual C++4.0提供了以下cpu类型的多种选择:ARM, MIPS, Shx及 x86。虽然作为Windows CE.net的编译器,但她也支持很多不同的对象装置。用户在编辑框中输入两个数,单击”计算结果”按钮,则在第三个编辑框中显示两数结果,可以是四种算法中一种.编写一个小程序名为y3.

1.  定制对话框模板

设置对话框本身的属性;向对话框放置控件及设置控件跳表顺序.

(1)  设置对话框的属性

(2)  添加控件并设置控件属性.本次介绍七种图形控件,静态文本控件,编辑框,组框,按钮,复选框以及单选框

(3)  设置控件跳表顺序,即对每个控件赋予顺序编号.

2.  定义成员变量

变量的类别可以为Value或Control.后者表示所定义的变量是控件类的一个对象.前者表示所定义的变量是与控件相联系的一个值.

3.  增加事件处理函数

4.  增加代码

需要实现的函数包括:OnButtonResult(),OnChangeEditAdd1(),OnChangeEditAdd2(),OnRa

dioAdd(),OnRadioDiv(),OnRadioMulti(),OnRadioSub().

void CY3Dlg::OnChangeEditAdd1()

{

  // TODO: If this is a RICHEDIT control, the control will not

  // send this notification unless you override the CDialog::OnInitDialog()

  // function and call CRichEditCtrl().SetEventMask()

  // with the ENM_CHANGE flag ORed into the mask.

 

  // TODO: Add your control notification handler code here

  if(m_bAtOnce)

  {

  OnButtonResult();}

}

void CY3Dlg::OnChangeEditAdd2()

{

  // TODO: If this is a RICHEDIT control, the control will not

  // send this notification unless you override the CDialog::OnInitDialog()

  // function and call CRichEditCtrl().SetEventMask()

  // with the ENM_CHANGE flag ORed into the mask.

  // TODO: Add your control notification handler code here

  UpdateData();

  if(m_bAtOnce)

  {

  OnButtonResult();

  }

}

void CY3Dlg::OnRadioAdd()

{

  // TODO: Add your control notification handler code here

  UpdateData(true);

  m_strOpr="+";

  UpdateData(false);

}

void CY3Dlg::OnRadioDiv()

{

  // TODO: Add your control notification handler code here

  UpdateData(true);

  m_strOpr="/";

  UpdateData(false);

 

}

void CY3Dlg::OnRadioMulti()

{

  // TODO: Add your control notification handler code here

  UpdateData(true);

  m_strOpr="*";

  UpdateData(false);

}

void CY3Dlg::OnRadioSub()

{

  // TODO: Add your control notification handler code here

  UpdateData(true);

  m_strOpr="-";

  UpdateData(false);

}

void CY3Dlg::OnButtonResult()

{

  // TODO: Add your control notification handler code here

  UpdateData(true);

  switch(m_dOpr) 

{

  case 0:  /*加法*/

  m_fResult=m_fAdd1+m_fAdd2; 

  break;

  case 1:  /*减法*/

  m_fResult=m_fAdd1-m_fAdd2;

  break;

  case 2:  /*乘法*/

  m_fResult=m_fAdd1*m_fAdd2;

  break;

  case 3:  /*除法*/

  m_fResult=m_fAdd1/m_fAdd2;

  break;

}

  UpdateData(false);

}

上面代码中频繁出现了函数Updatedata(),其格式如下:

BOOL UpdataData(BOOL bSaveAndValidate=TRUE); Updatedata()是MFC类CWnd的成员函数,CWnd类是很重要的一个MFC类,所有窗口类都直接或间接继承它。各关联函数的初值在函数CY3Dlg::CY3Dlg中初始化。

 

CY3Dlg::CY3Dlg(CWnd* pParent /*=NULL*/)

  : CDialog(CY3Dlg::IDD, pParent)

{

  //{{AFX_DATA_INIT(CY3Dlg)

  m_fResult = 0.0;

  m_dOpr = 0;

  m_strOpr = _T("+");

  m_bAtOnce=FALSE;

  m_fAdd1 = 0.0;

  m_fAdd2 = 0.0;

  //}}AFX_DATA_INIT

  // Note that LoadIcon does not require a subsequent DestroyIcon in Win32

  m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

编程结束

  祝贺你!你已经完成了第一个 Windows CE 应用程序的开发。就像你所看到的一样,使用 Visual C++ 来开发 Windows CE 应用程序和开发一个 Win32 应用程序是一样的简单。大多数步骤都是一样的。至此,本文已经就如何使用 Visual C++ 来开发 Windows CE 应用程序做了一个简单的介绍。在下面的章节中,你可以到其它相关的地方去获取更多的关于 Windows CE 和手持计算的知识。

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-977272/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3984
  • 访问量
    7335434