📄 visual c++ for windows ce.txt
字号:
Visual C++ for Windows CE
Visual C++ for Windows CE 是一个可以加装到 Visual C++ 和 Developer Studio 中的组件。它的集成开发环境(IDE)和 Visual C++ 是一样的,但你要弄明白目标环境、Windows CE和新的向导的特殊性。这里我们将重点介绍一下“Windows CE 应用程序向导(Wizards)”。
Visual C++ for Windows CE 中所带的应用程序向导是一个非常有用的工具。一共有四种类型的新的向导,它们的使用方法和 Visual C++ 中常规的向导没什么区别,只是它们是用于 Windows CE 开发的。你可以利用它们来快速地创建一个基本的应用程序、动态连接库(DLL)或者组件应用程序外壳。这四种新的向导分别是:WCE 应用程序向导; WCE 动态连接库向导 ;WCE ATL COM 应用向导; WCE MFC ActiveX 控件向导。 当然随着 Windows CE 的普及,必然会有更多的 VC++ for Windows CE 向导出现的(这是后话)。
使用Visual C++ for Windows CE编写第一个 CE 应用程序
以下我们将通过一个简单的例子来说明如何使用 Visual C++ for Windows CE 的 WCE MFC 应用向导来(EXE) 来开发一个 CE 应用程序。该应用程序具有一个显示着一幅位图的视图(view),一个点击后能够弹出一个对话框的菜单。该对话框上还包含了一个 Windows 的常用控件,一个进度控件。(具体操作步骤不再详述)
以下是代码部份:
{
CBitmap bmp, poldbmp;/*定义变量*/
BITMAP bmpStruct;
CDC memdc;
CRect bmpRect, clientRect;
CBrush backBrush(RGB(0,0,0));/*设置背景颜色*/
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
/*获得分配内存大小*/
GetClientRect(&clientRect);
/* 载入新图到分配内存中*/
pDC->FillRect(&clientRect, &backBrush);
bmp.LoadBitmap(IDB_WINCE_BITMAP);
bmp.GetBitmap(&bmpStruct);
/*设置位图尺寸*/
bmpRect.left = clientRect.left + (clientRect.Width() - bmpStruct.bmWidth)/2;
bmpRect.top = clientRect.top + (clientRect.Height() - bmpStruct.bmHeight)/2;
bmpRect.right = clientRect.right - (clientRect.Width()- bmpStruct.bmWidth)/2;
bmpRect.bottom=clientRect.bottom-(clientRect.Height()-bmpStruct.bmHeight)/2;
/*分配一个新的内存地址*/
memdc.CreateCompatibleDC(pDC);
/*调入位图到新分配内存*/
poldbmp = memdc.SelectObject( &bmp );
/*输入位图到屏幕*/
pDC->BitBlt(bmpRect.left,bmpRect.top, bmpRect.right,bmpRect.bottom,&memdc, 0,0, SRCCOPY);
memdc.SelectObject(poldbmp);
pDC->SelectObject(pOldBrush);
return TRUE;
}
以上代码的功能是将客户区的背景设成黑色,并将位图放置于屏幕中心。接下来我们将创建并添加菜单项和对话框。
对话框
现在我们使用进度控件来创建一个对话框。我们首先添加一个菜单项和一个消息句柄来调用该对话框。以下是详细的操作步骤:
1. 在 IDR_MAINFRAME 菜单资源中添加一个新的弹出菜单,并命名为 Tools;
2. 在 Tools 弹出菜单中添加一个菜单项,命名为 Run WCE First Dialog;
3. 使用 ClassWizard 给新创建的 Run WCE First Dialog 菜单项添加一个命令句柄;
下面我们来添加一个对话框,将控件放入其中,并绑定该对话框到一个类。
4. 插入一个新的对话框资源,并设置其标题为 WCE First Dialog,资源标号为 IDD_FIRST_DLG;
5. 将 Ok 按钮的标题(caption)改为 Close;
6. 将 Cancel 按钮的标题改为 Start,并将其资源标号改为 IDB_START_BTN;
7. 从控件面板上拉下一个进度控件并放置到对话框中。不要修改该进度控件的风格(styles)、标题(caption)和资源标号(resource ids);
8. 根据掌上电脑的屏幕面积调整该对话框的大小,使之能在掌上电脑中正确显示。建议可以设为 196 x 47 象素大小;
9. 使用 ClassWizard 绑定该对话框资源到一个新的类:CWCEFirstDialog;
10. 创建完对话框类后,再使用 ClassWizard 来给进度控件添加一个成员变量,叫做 m_progressCtrl;
11. 为 Start 按钮添加一个命令按钮句柄;
现在你已经将所有的预备设置都添加到程序中去了。虽然我们所使用的进度显示控件和对话框并没有什么实际意义,但也能够满足我们的这个短小的入门教程的要求了。当我们选中 Run WCE First Dialog 菜单项时,对话框将显示出来;然后点击 Start 按钮,进度控件就会从0增长到30000,最后显示一个标准的 Windows 消息框;点击 Close 按钮将关闭该对话框。
为了设置进度指示器,你必须在对话框的 WM_INITDIALOG 消息句柄中设置进度值范围和步长。首先使用 ClassWizard 为 Windows 消息 WM_INITDIALOG 添加一个消息句柄。在 OnInitDialog() 函数中添加下列代码来设置进度指示器的范围和步长:
BOOL CWCEFirstDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_progressCtrl.SetRange(0,30000);
m_progressCtrl.SetStep(1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
下一步,当用户点击 Start 按钮时,进度控件的值要开始增长。在增长结束时,还要显示一个消息框。下列代码完成上述任务:
void CWCEFirstDialog::OnStartBtn()
{
for(int i = 0; i <=30000; i++)
{
m_progressCtrl.StepIt();
}
AfxMessageBox(_T("Progress Complete!!!"), MB_OK);
}
完成以上代码后,你就可以运行你的程序看看效果了。
编程结束
祝贺你!你已经完成了第一个 Windows CE 应用程序的开发。就像你所看到的一样,使用 Visual C++ 来开发 Windows CE 应用程序和开发一个 Win32 应用程序是一样的简单。大多数步骤都是一样的。至此,本文已经就如何使用 Visual C++ 来开发 Windows CE 应用程序做了一个简单的介绍。在下面的章节中,你可以到其它相关的地方去获取更多的关于 Windows CE 和手持计算的知识。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -