
WinCE
lanyzh0909
这个作者很懒,什么都没留下…
展开
-
关于SetCapture() 和 ReleaseCapture()的用法
查MSND,对SetCapture()函数的说明为:“该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。”一开始我看这个解释误认为了只要在属于窗口里的一个线程调用了SetCapture(hWnd)把hWn原创 2010-04-29 17:28:00 · 53657 阅读 · 2 评论 -
DirectDraw VS GDI
<br /> GDI,是微软提供给应用开发人员提供的一个图形编程接口。它提供了很多设备无关性的图形接口,这些接口包含了从字体处理到位图操作几乎所有的功能。GDI实现这些功能是通过一个被称为显示驱动接口(DDI)的驱动程序来操作具体的图形硬件。DDI 层中的功能是由硬件生产商开发的,他们为自己的产品提供显示驱动程序。在显示驱动程序中,所有的硬件功能都被隔离(如下图)。因此如果你想对底层图形硬件操作,那GDI就无能为力了(如直接访问显存之类的操作)。正因为GDI有此些缺陷,微软才开发一套应用于多媒体和游戏开发原创 2011-04-25 17:08:00 · 3939 阅读 · 0 评论 -
DirectDraw Overlay的使用
本例将使用DirectX SDK包含的Mosquito范例程序一步一步地说明怎样在程序中使用DirectDraw和硬件支持的覆盖表面。Mosquito使用覆盖表面的翻转链而没有位块传输到主表面将运动位图显示在桌面上。Mosquito程序调整覆盖表面的特征以适应硬件的限制。1、创建一个主表面 要使用覆盖表面,必须先要初始化一个主表面,覆盖表面将显示在该主表面上。Mosquito用如下代转载 2011-06-14 22:25:00 · 6670 阅读 · 1 评论 -
基于窗口的DirectDraw编程
DDSURFACEDESC ddsd;memset(&ddsd, 0, sizeof(ddsd));ddsd.dwSize = sizeof(ddsd);ddsd.dwFlags = DDSD_CAPS;ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; //创建主页hRet = m_pDD->CreateSurface(&ddsd, &m_pDDSPrimary, NULL);if (hRet != DD_OK){goto E原创 2011-04-26 10:06:00 · 5212 阅读 · 1 评论 -
Visual C++ Debug 与 Release版本区别
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列转载 2011-07-31 17:02:08 · 1510 阅读 · 0 评论 -
SHELLEXECUTEINFO 和 ShellExecuteEx的使用
SHELLEXECUTEINFO 和 ShellExecuteEx的使用 使用SHELLEXECUTEINFO和ShellExecuteEx,我也主要是在cab包的安装时使用的。基本上是这样使用的,如下: SHELLEXECUTEINFO转载 2011-08-16 14:22:17 · 1767 阅读 · 0 评论 -
设置Wince下的默认输入法
最近公司产品要加入自己开发的一个拼音输入法,至于拼音输入法的实现我这里就不说!开始修改我们的默认输入法吧!1、输入法编译好一般是dll文件,把你自己的dll放到Flash中如"\NAND Flash\HWIME\HWRecognizer.dll"2、增添系原创 2011-08-25 11:13:43 · 4048 阅读 · 2 评论 -
WM_PAINT与WM_ERASEBKGND
当WM_PAINT不是由InvalidateRect产生时,即由最大化,最小化等产生时,或者移动产生(移动有时只会产生WM_ERASEBKGND消息)系统先发送WM_ERASEBKGND消息,再发送WM_PAINT消息。 如果处理WM_ERASEBKGND消息时返回FALSE,BeginPaint标记pt.fErase 为TRUE,如果处理WM_ERASEBKGND时返回TRUE,Beg转载 2011-12-09 16:17:58 · 1254 阅读 · 0 评论 -
WinCE内核裁减(中文字体)及字库和内核的分离
每次定制中文系统时,NK总是比英文大10M左右,启动时在bootloader中将内核Copy到内存时也花时间,同时也占用了很多内存,留给系统和应用的内存就少了10M左右,真是浪费呀,看到都心痛!本人研究了一下,同时也参考了网上的资料,现总结如下,如何减少中文字库大小和将字库放到外部存贮器上。核心思想是将默认选择的中文字体SimSun & NSimSun (SYSGEN_FONTS_SIMSUN)替转载 2011-12-12 17:33:32 · 1068 阅读 · 0 评论 -
有关wince下校准界面的修改
1、在WINCE系统下有默认带有一个校准程序,应用程序可以通过调用API "TouchCalibrate()"来启动校准程序。如果在你调用"TouchCalibrate"后编译出错或者调用不成功的话可以自己收到加载此函数如:typedef BOOL (WINAPI *_TouchCalibrate)(); HINSTANCE hinstance = LoadLibrary原创 2011-12-07 17:40:41 · 3002 阅读 · 1 评论 -
域名解析成相应Ip是注意事项
最近在做一个项目涉及到跟公司的后台服务程序通信。既然要通信就少不了连网,连网了就少不了要建立tcp/ip通信。在wince下编写网络程序可以通过socket建立、收发数据。通过socket建立通信是一般需要知道对方(服务器)的IP地址和相应的端口号。但是在很多时候我们知道是的对方的域名而不是IP地址(因为XXX.XXX.XXX都是些数字和“.“不太方便用户记忆)。那么我们咋程序怎么通过域名来获原创 2011-12-28 17:58:16 · 2706 阅读 · 0 评论 -
ARM 指令集
ARM指令集 6种类型(53种主要助记符) : 数据处理指令(22种主要助记符) 跳转指令(4种主要助记符) Load/Store指令(16种主要助记符) 程序状态寄存器指令(2种主要助记符) 协处理器指令(5种主要助记符) 软件中断指令 (2种主要助记符)数据处理指令 数据处理指令大致可分为3类: 数据传送指令; 算术逻辑运算指令; 乘法指令转载 2012-02-15 11:12:10 · 1098 阅读 · 0 评论 -
WinCE Bootloader学习笔记之KernelRelocate()函数
内核的初始化数据都保存在镜像文件中(data段的数据)。对数据的读写,必须要把镜像的真实数据内容,复制到RAM中,才允许使用。Kernelrelocate()函数就是完成该功能的,把镜像中的全局变量Copy到Ram中,该过程完成之后,其他模块才能正常访问保存的全局数据。 1.需要用到的两个概念:ROMIMAGE.exe: 生成系统镜像文件的程序。TOC: Table Of Con原创 2012-02-23 16:21:30 · 1003 阅读 · 0 评论 -
s3c6410 wince开机log
将Logo图片写Flash的思路继续细分,又可以分为几种不同的实现方法,今天先描述实现方法一,这是其中比较简单的一种方法,不需要修改bib文件等配置性文件,只需要修改代码即可。 首先提几个问题: 1、在什么时候将Logo数据写入Nand Flash? 2、在什么时候读Nand Flash数据到显示缓存? 3、要写的Logo的数据是什么转载 2012-02-24 16:59:30 · 1309 阅读 · 0 评论 -
网络状态检测方法分析
现在网上有很多种针对网络状态检测的方法,在此做一个简单的分析和总结。总体来说一共有七种。一、 InternetAttemptConnect函数 这个函数可以说非常简单,只是尝试计算机连接到网络。并不考虑是用什么方式连接。当成功连接到网络的时候,函数返回ERROR_SUCCESS,也就是0。函数的参数永远都是0。 有一点需要注意的是,当计算机是用“小猫”也就是拨号的方式上网转载 2012-05-08 13:08:13 · 6191 阅读 · 0 评论 -
Windows CE如何根据文件名获取其对应文件图标icon
Windows CE如何根据文件名获取其对应文件图标icon1、背景介绍如果把一文件copy到Windows CE5.0系统的U盘(或者桌面等目录)中,那么这个文件就会有其对应的图标显示,如下图。那么Windows CE5.0文件系统是如何管理文件和其对应图标的呢?2、文件图标简介在WCE5.0系统中,你能看到的图标都有其对应的图标资源,问题就在于这些图标在哪里,而WCE系统又转载 2011-06-03 13:43:00 · 1715 阅读 · 0 评论 -
wince中文件关联的问题
Platform Builder for Microsoft Windows CE 5.01、通常情况下,点击一个mp3文件,会自动地调用Mediaplayer播放。 如果需要,我们也可以实现当点击一个特定格式的文件时,调用我们自己的程序来处理。 先对注册表进行一些处理。 比如我们要把后缀名为.dat的文件进行关联。首先在HKEY_CLASSES_ROOT下建一子目录.dat转载 2011-06-03 13:38:00 · 1277 阅读 · 0 评论 -
在WINCE下的点对点消息队列
在WINCE下的点对点消息队列在Wince下支持一种进程通信的方法,叫做点对点消息队列。为了和消息队列通信,一个或者一对进程创建一个读队列和一个写队列。调用创建函数或者打开队列的函数,只能指定它是读还是写,不能同时拥有读写权限。 当一个队列创建时,消息的最大个数和每条消息的最大长度被定义。如果队列已经填满,这时进行写操作,写函数将被阻塞(等待队列中出现空的槽),或者是立刻返回失败,或者是在返回失败之前等待一段指定的时间。同样的,读函数可以被阻塞,直到队列中出现新的未读消息,或者在返回失败前等待一段时间原创 2011-02-22 16:56:00 · 4420 阅读 · 0 评论 -
通过创建窗口进程的ID来查找窗口句柄
我们知道通过窗口句柄来查找创建这个窗口进程ID可以通过调用微软提供的API函数:DWORD GetWindowThreadProcessId( HWND hWnd, // Handle to the window. LPDWORD lpdwProcessId // Pointer to a 32-bit value that receives the process ide原创 2010-04-30 12:33:00 · 4981 阅读 · 0 评论 -
Prima SIRF TT4X0B 的系统定制
最近,由于工作的需要从ARM9的平台转换到ARM11的平台。在此首先要做的就是系统的定制, ARM11支持WINCE6.00。WINCE6.00和WINCE5.00 系统的定制有所不同。WINCE6.00的定制开发环境是集成在VS2005(或更高的版本)。在开始WINCE6.00的定制首先确保你的系统安装和满足以下要求:• 1GHz Pentium II processor or higher原创 2010-05-18 17:32:00 · 2633 阅读 · 4 评论 -
获取WINCE和WINXP的外部存储器
<br /><br /> WINCE和WINXP文件夹分为对象存储和外部存储.对象存储处于RAM,断电消失;外部存储即硬盘U盘等非易失性存储器,断电数据依然存在.不过在Windows CE文件系统中没有使用驱动器名,取而代之,文件路径是基于文件系统根目录定义的。不同的存储卷,如硬盘驱动器或是独立的flash文件系统,都表现为文件系统根目录下的不同目录。除此之外,Windows CE 下没有当前目录的存在(即目录名称名称为‘.’)。<br /> 既然两者处在不同之处,那么在获取外部存储器是会有不原创 2010-07-16 15:01:00 · 1461 阅读 · 0 评论 -
WINCE下对文件夹的操作
最近,由于工作的需要自己封装了一个对对文件夹的操作的类(CDirectory)。有了这个类之后我们对文件操作就显得十分的简单,在这里就不废话了。首先来看一下怎么使用这个CDirectory。CDirectory类实现了对目录的创建、删除、拷贝、取得文件夹的大小、检查目录的存在与否和从指定的文件夹中查找指定的后缀名。CDirector DirOperator;//根据绝对路径创建文件夹,如果绝对路径名有不存在的目录将被创建。如在C盘下有个Dir的文件//夹,但是在Dir子目录文件夹中没有A文件夹通过下面的原创 2010-07-18 17:14:00 · 7049 阅读 · 5 评论 -
如何在定制Prima SIRF TT4XOB系统时修改系统的大小及提高开机速度
在我定制Prima SIRF TT4XOB系统时,再我把很多组件加到系统里发现不能通过编译提示错误为“Error: Ran out of space in ROM for simsun.ttcsize 9073640”等,是系统大小不足。 这时只需要修改$:/WINCE600/PLATFORM/COMMON/SRC/SOC/PRIMA_SiRF_V2/TT4X0A/SRC/TT原创 2010-05-24 15:29:00 · 1747 阅读 · 0 评论 -
WINCE下窗口的创建
窗口的创建一般分为以下几步: 1、实例化一个WNDCLASS(WNDCLASSEX)对象 2、调用RegisterClass(RegisterClassEx)函数注册窗口类 3、调用CreateWindow(CreateWindowEx)方法创建窗口 4、调用ShowWindow(hwnd,SW_SHOWNORMAL)设置窗口详细显示状态 5、调用UpdateWindow(hwnd)刷新显示窗口 6、进入消息循环等待消息函数作用:RegisterC原创 2010-07-22 17:59:00 · 3226 阅读 · 1 评论 -
时钟的显示
<br /><br /> 在pc机上,我们随处到都可以看到时间和时钟的显示,出于好奇我自己封装了一个时钟的类。通过这个类我们可以任意更换背景,使得时钟的显示更加漂亮。<br /> <br />现在先介绍一下怎么使用这个类:<br />//定义一个对象<br />CClock g_Clock;<br /> <br />//初始化类成员 <br />//设置背景图片,注意图片格式为Bmp<br />RECT rcImag ={0,0,329,314}; //图片中的哪些区域<br />g_Clock.Set原创 2010-08-07 17:20:00 · 2056 阅读 · 1 评论 -
WINCE 下创建动态显示图片窗口
在WINCE下创建一个动态显示图片的窗口并非难事,大概思路为:1、 创建一个窗口。2、 创一个内存DC,用存放要显示的图片。3、 创建一个线程相隔一段时间将图片将绘制到屏幕DC上。 但是要将其封装在一个类中却并非一件容易的事情,为了以后方便使用我在这里封装一下。介绍一下这个类的使用方法://定义一个窗口属性:namespace AnimateWnd{struct Property { TSTRING strBkImage; //要显示图片的路径 RECTrcImage原创 2010-08-20 17:59:00 · 2859 阅读 · 2 评论 -
在WinCE下绘制半透的效果要注意的问题
在Windows XP 中实现半透明效果并不是件难事,仅仅只需要调SetLayeredWindowAttributes函数即可。如果同样的效果也想在Windows CE 中重现呢?因为Windows CE没有SetLayeredWindowAttributes 函数,不过在Windows CE 5.0开始支持AlphaBlend,该函数的作用是将两个HDC根据一定的比例混合,即有了类似半透明的效果。知道了有这个函数,我们现在就应该来看看这个函数怎么用。查阅MSDN,该函数定义为:BOOL AlphaBlen原创 2010-08-29 16:29:00 · 2089 阅读 · 0 评论 -
WINCE下窗口界面闪烁的问题
在做界面开发时,相信大家都遇到过界面闪烁问题。一般有一下几种情况:1、 移动窗口2、 在窗口上绘制大量的图片3、 在绘制子窗口以上3种情况是窗口出现闪烁概率比较高(不是说一定会出现,主要看CPU的处理速度)。第一种情况,在移动窗口时系统会先给窗口发送一个WM_ERASEBKGND之后才是WM_PAINT 消息。我们只要在处理WM_ERASEBKGND消息直接返回就可以了。LRESULT WndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam原创 2010-09-29 11:27:00 · 2698 阅读 · 1 评论 -
WINCE BSP中source文件中的宏定义
在WinCE BSP中会看到很多sources文件,一般会和源代码放在同一个目录,当然不是绝对的。这些sources文件里面就是定义了一些宏,主要用于告诉Build.exe在编译源代码的时候应该如何编译和链接,告诉Nmake.exe如何编译源代码以及最后生成什么类型的文件。 下面具体介绍一下:TARGETNAME:最后编译完后生成的目标文件的名字,不包括扩展名。TARGETTYPE:生成的文件的类型。具体值如下: LIBRARY,一个.lib文件 DYNLINK,一个.dll文原创 2010-12-23 16:38:00 · 3232 阅读 · 0 评论 -
Wince下自绘文本控件
<br />最近,因为工作比较紧张一个月都没有写文章了。由于工作的需要我自己封装几个基本控件,有按钮、进度条、列表框、静态文本域、动态文本域、时钟、对话框等基本控件。<br />下面我们来解释一下文本域(静态文本)的封装实现,文本域包括以下几个部分:<br />1、 字体的大小<br />2、 字体颜色<br />3、 字体显示的区域<br />4、 文本域的背景<br />现在我们搞清楚了文本包括以上部分,就可以开始封装文本控件。<br />首先,在代码定义一个文本属性结构体:<br />name原创 2010-11-07 16:16:00 · 2030 阅读 · 1 评论 -
有关于串口通信程序的编写
<br /> Win 32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的声明为:<br />HANDLE CreateFile( <br />LPCTSTR lpFileName, // 文件名 <br />DWORD dwDesiredAccess, // 访问模式 <br />DWORD dwShareMode, // 共享模式 <br />LPSECURITY_ATTRIBUTES lpSecu原创 2010-11-10 20:38:00 · 12440 阅读 · 4 评论 -
关于在TCC8900开发板上添加中文字库
在Wince 6.0系统中添加中文字库,可以在定制系统时“Core OS”->“CEBASE”->“International”->“Local Specific Support”中选择你要的字体。如图我在这里选择的是简体中文如图: 重新选择“Clean Sysgen”,编译一下系统。不幸的是会在Make image 时报错如图: 产生的原因是因为我们添加了中文字库增大了系统的大小,然而我们的NK大小只有32MB的空间大小容不下。这时,我们只要修改“$_WINCEROOT/PLATFORM/magellan原创 2011-01-07 12:30:00 · 1930 阅读 · 1 评论 -
wince下流式驱动的编写
WinCE的设备驱动程序都是简单的DLL,然后导出特定的入口函数。驱动程序不是由与驱动打交道的应用程序直接载入而是由设备管理器在载入的(在Wince 5.0由Device.exe加载的,在Wince6.0是由uDevice.exe加载的)。 在Wince下的驱动大多数是流式设备驱动,一个流式驱动会暴露12个外部入口函数。设备管理器会调用它们与驱动程序交互。列举一下每种入口原创 2010-12-28 16:07:00 · 1600 阅读 · 1 评论