WinCE编程基础.docx

上传人:b****2 文档编号:2240300 上传时间:2022-10-28 格式:DOCX 页数:54 大小:42.27KB
下载 相关 举报
WinCE编程基础.docx_第1页
第1页 / 共54页
WinCE编程基础.docx_第2页
第2页 / 共54页
WinCE编程基础.docx_第3页
第3页 / 共54页
WinCE编程基础.docx_第4页
第4页 / 共54页
WinCE编程基础.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

WinCE编程基础.docx

《WinCE编程基础.docx》由会员分享,可在线阅读,更多相关《WinCE编程基础.docx(54页珍藏版)》请在冰豆网上搜索。

WinCE编程基础.docx

WinCE编程基础

WinCEWinCE1

WinCE编程基础

2

WindowsCE编程基础

§1HelloWindowsCE

§2屏幕绘画

§3输入:

键盘,鼠标和触摸屏

§4窗口,控件和菜单

§5公共控件和WindowsCE

§6对话框和属性表

3

§1HelloWindowsCE

§1.1第一个WinCE程序:

Hello1

§1.2Hello1的升级:

Hello2

§1.3Windows应用程序剖析

§1.4一个完整的WinCE应用程序:

Hello3

§1.5HelloCE

4

FirstWindowsCEApplication

--HelloWindowsCE

Hello1.cpp

#include"windows.h"

//Programentrypoint

intWINAPIWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPWSTRlpCmdLine,

intnCmdShow)

{printf("HelloWorld\n");

return0;

}

5

FirstWindowsCEApplication

--HelloWindowsCE

#include"windows.h"

这个文件包含了一组文件,它们中定义了

WindowsAPI及其用到的结构和常量.

intWINAPIWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPWSTRlpCmdLine,

intnCmdShow)

程序的入口点,不同于标准C程序,参数含义如

下:

6

FirstWindowsCEApplication

--HelloWindowsCE

-hInstance

为其它应用程序指明具体程序实例,也为需要验证这个EXE的

WindowsAPI函数提供了程序实例.

-hPrevInstance

是从旧的Win16API(Windows3.1及更早的系统)遗留下来的.

包括WindowsCE在内的所有Win32操作系统中,

hPrevInstance始终是0,可以忽略.

-lpCmdLine

指向一个Unicode字符串,包含了命令行文本.

从微软WindowsCE浏览器启动的应用程序没有命令行参数,但

在某些情况下,例如当系统自动启动一个程序时,系统包含一

个命令行参数来说明程序为什么被启动.

7

FirstWindowsCEApplication

--HelloWindowsCE

-nCmdShow

指明了程序主窗口的初始状态.(最大化,最小化,活

动等)

由父进程,通常是浏览器传递这个参数到程序里.

WindowsCE里,这个参数的值被限制成3个状态:

通(SW_SHOW),隐藏(SW_HIDE)和非激活

显示(SW_SHOWNOACTIVATE).

除非应用程序需要强制它的窗口预先确定状态,在程

序主窗口被创建后,这个值是不加修改,只是简单

的传递给ShowWindow函数的.

8

FirstWindowsCEApplication

--HelloWindowsCE

printf("HelloWorld\n");

WindowsCE支持大部分标准C库,包括

printf,getchar等.

return0;

用return结束程序.

9

FirstWindowsCEApplication

--HelloWindowsCE

构建第一个应用程序

在VS2005中,创建编辑,编译上述程序

运行该程序

VS2005自动启动模拟器,并把EXE程序放到模拟器文件系统里运行

问题

运行了吗

运行了!

程序启动,写到控制台,结束.除非你从一个已经创建的控制台启

动程序,否则WindowsCE会在Hello1执行printf语句时,创建一个控制台

窗口,并且在Hello1结束的时候自动关闭控制台.

在PocketPC上,应用程序可以运行,但PocketPC并不为诸如printf之类的

输出提供控制台显示的功能.通过把驱动程序console.dll放到PocketPC

的Windows目录里,可以为PocketPC增加控制台支持.驱动程序从驱

动程序接口获取输入,创建屏幕窗口,打印输出字符串.控制台启动程

序可以从手持式PC和嵌入式版本的WindowsCE获得.

10

§1HelloWindowsCE

§1.1第一个WinCE程序:

Hello1

§1.2Hello1的升级:

Hello2

§1.3Windows应用程序剖析

§1.4一个完整的WinCE应用程序:

Hello3

§1.5HelloCE

11

upgradeHello1:

Hello2

升级Hello1,用一个消息框来替代Hello1中的printf

Hello2.cpp

#include"windows.h"

//Programentrypoint

intWINAPIWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPWSTRlpCmdLine,

intnCmdShow)

{MessageBox(NULL,TEXT("HelloWorld"),TEXT("Hello2"),MB_OK);

return0;

}

12

upgradeHello1:

Hello2

4AJE>Hello2¨^,V/,X0k~

printf,XMessageBoxDHello2oZ2

(M~

10k¨JüM6/HelloWorld[

~

1'MessageBoxD,¨*üGK`#\C0k!

E¤~EAHello2,¨-E>¨,¨*üGK`0k~

13

upgradeHello1:

Hello2

MessageBox函数原型如下:

intMessageBox(HWNDhWnd,LPCTSTRlpText,

LPCTSTRlpCaption,UINTuType);

-第1个参数是顶层窗口的句柄,它是消息窗口的父窗口.

Hello2里为NULL,因为Hello2还没有任何其它窗口.

-第2个参数是准备显示在窗口里的文字.注意传入的字

符串是用TEXT宏包裹的,确保它能够编译成Unicode

版本.

-第3个参数lpCaption是显示在窗口标题栏的文字.

-最后一个参数uType是一系列标志位,规定消息框如何

显示在屏幕上.标志位规定了消息框中按扭的数量和

类型,规定了图标的类型以及消息框窗口的风格设置.

14

MessageBox函数在WindowsCE下

有效的标志位

标志位按钮或者图标

用于按钮

MB_OKOK

MB_OKCANCELOKandCancel

MB_RETRYCANCELRetryandCancel

MB_YESNOYesandNo

MB_YESNOCANCELYes,No,andCancel

MB_ABORTRETRYIGNOREAbort,Retry,andIgnore

15

MessageBox函数在WindowsCE下

有效的标志位

用于图标

MB_ICONEXCLAMATION,MB_ICONWARNINGExclamationpoint

MB_ICONINFORMATION,MB_ICONASTERISKLowercaseiwithinacircle

MB_ICONQUESTIONQuestionmark

MB_YESNOYesandNo

MB_ICONSTOP,MB_ICONERROR,MB_ICONHANDStopsign

MB_DEFBUTTON1Firstbutton

MB_DEFBUTTON2Secondbutton

MB_DEFBUTTON3Thirdbutton

用于窗口风格:

MB_SETFOREGROUNDBringthemessageboxtothe

foreground.

MB_TOPMOSTMakethemessageboxthe

topmostwindow.

16

MessageBox的返回值

-MessageBox的返回值指出用户按了哪个按扭.返回

值如下:

IDOKOKbuttonpressed

IDYESYesbuttonpressed

IDNONobuttonpressed

IDCANCELCancelbuttonpressedorEsckeypressed

IDABORTAbortbuttonpressed

IDRETRYRetrybuttonpressed

IDIGNOREIgnorebuttonpressed

17

§1HelloWindowsCE

§1.1第一个WinCE程序:

Hello1

§1.2Hello1的升级:

Hello2

§1.3Windows应用程序剖析

§1.4一个完整的WinCE应用程序:

Hello3

§1.5HelloCE

18

Windows应用程序剖析

Windows程序使用"Push"(推)模式编程.

在这种模式下,必须编写程序来响应来自

操作系统的通知,比如一个键被压下去了

或者收到一个重绘屏幕的命令.

Windows应用程序并不从操作系统请求输

入,而是由操作系统通知应用程序输入产

生了.操作系统通过发送消息(messages)

给应用程序窗口来完成这些通知.所有窗

口都是窗口类的具体实例.

19

Windows应用程序剖析

几个概念

窗口类

窗口是屏幕上的一个区域,一般是矩形.窗口有

一些基本参数,比如位置参数x,y和z(窗口在

屏幕其它窗口之上或者之下),可视性以及层

次关系等.

每个被创建的窗口都是窗口类的一个具体实例.窗口

类是一个模板,为该类的所有窗口定义了许多共同

属性.换句话说,属于同一个类的窗口有同样的属

性.这些共享的属性中最重要的是窗口过程.

20

Windows应用程序剖析

窗口过程

窗口过程定义了同一个类里所有窗口的行为.窗口过程

处理发到窗口的所有通知和请求.这些通知,要么是

操作系统发给窗口,告诉窗口有事件发生,窗口必须

回应,要么是其他窗口发来的,向该窗口查询信息.

这些通知是以消息的形式发送的.消息实际就是对窗口

过程的一次调用,带有参数指出通知或者查询的种类.

当有事件发生,例如窗口被移动,被改变大小或有键

被按下去等,就会发送消息.

标识消息的值由Windows定义.应用程序使用预定义好

的常量,例如WM_CREATE和WM_MOVE,来表示消

息.因为有很多消息可被发送,所以当窗口类对某个

消息没有特殊处理的必要时,Windows提供了一个默

认处理函数来处理传递这些消息.

21

Windows应用程序剖析

消息生命周期

Windows是如何协调发到系统里各个窗口的各种消息

Windows监视系统的所有输入,例如键盘,鼠标,触摸

屏以及其它可以产生影响窗口的事件的硬件.当事件

发生后,消息就被构成并定向给特定的窗口.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1