- 博客(38)
- 资源 (2)
- 收藏
- 关注
原创 Windows Mobile上异形窗口的实现
PC上的常用的软件,如搜狗输入法、金山词霸,都用到了一些异形窗口,配合皮肤的展示 Windows Mobile上也可以实现类似效果 在实现过程中,比较重要的函数有CreateRectRgn、CombineRgn、SetWindowRgn等。对于一张图片,指定一种透明色,可以用抠像素的方法,来组合Region。可以对HDC句柄使用GetPixel来
2010-04-15 15:59:00
4094
2
原创 Windows Mobile上的矢量图形显示
矢量图形是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。我们来讨论一下在手机上实现矢量图形的方法。 以一幅北京市区域地图为例,将其显示在手机上,并实现平移、缩放、旋转等功能。在Gis系统中,由于地球为球状天体,需将地球坐标经过投影转换成地图坐标,再经过转换成设备屏幕坐标来显示。一般而言,地图坐标系,x轴向右,y轴向上;屏幕坐标系x轴向右,y轴向下。如下图
2010-03-02 14:21:00
4512
4
原创 Windows Mobile之存储卡自运行程序
前提:1)存储卡;2)存储卡根目录建立一个名为2577文件夹;3)2577文件夹有一名为autorun.exe可执行文件。过程:1)当系统检测到有存储卡插入,并存在上述前提时,将会把autorun.exe拷贝至/windows/Autorun目录,并运行;2)当插入和拔出存储卡时,会分别给main函数传递参数(注意argv[1]),值分别为install和uninstall;3)可利用autoru
2010-02-03 09:43:00
3957
1
原创 百度输入框的秘密
前不久,百度发布了手机输入法。相比较之前的点讯输入法,在用户桌面增加了一个百度搜索框。这里来探究一下搜索框的一些做法。在默认状态下,搜索框是隐藏的,只在Menubar上有一个百度图标显示,如图 当点击百度图标时,图标隐藏,搜索框弹出,如图 搜索框还自适应输入法面板,如图 用CE Spy来查看窗口,可以看到百度图标其实是个窗口,其父窗口是一个MS_SOFTKE
2010-01-06 11:39:00
12290
20
原创 setupdll在CAB安装过程中的一些处理方法
一)获取屏幕分辨率在CAB安装过程中,可以利用setupdll来做一些初始化的工作,极大的方便了我们的开发。但是在setupdll中使用GetSystemMetrics函数获取屏幕分辨率的时候,出现了问题。640x480的分辨率取出来成了320x240,800x480成了400x240...真是奇了怪了。原因也解释不清楚了,据说setupdll是被wceload.exe所加载的,而wceloa
2009-12-07 13:07:00
4451
1
原创 WinInet中的FTP操作
研究了一下Wininet在ftp中的应用,感觉比http应用要简单些。项目设置方面,Wininet.h和Wininet.lib都必须加入。假设ftp地址为10.1.1.1,账号和密码都为hello。为简单起见,使用同步模式:HINTERNET hInstance;HINTERNET hConnect;hInstance = InternetOpen(L"ftptest",
2009-10-27 16:54:00
6642
1
原创 Windows Mobile SDK例子浅析
SDK目录下提供了丰富的例子,开发中各方面的内容都有涉及,是开发者可充分利用的宝库。以Windows Mobile 5.0 Pocket PC SDK和Windows Mobile 5.0 Smarphone SDK为例,简单介绍一下其提供的例子。需要说明的是,两者中有部分例子是相同的。 l
2009-10-10 16:32:00
9058
7
原创 《Windows Mobile实例开发》电子书提供下载
本人操刀,亲自主罚。:)目前是第一版,持续修订中。主要针对使用C++进行Windows Mobile开发。 《Windows Mobile实例开发》pdf文档下载地址: http://download.youkuaiyun.com/source/1609399 http://www.devdiv.net/thread-14073-1-1.html 才疏学浅,望读者海涵。欢迎任何意见和建议。
2009-09-25 09:18:00
5925
7
原创 Windows Mobile中的文件改变通知
在资源管理器中,删除一个文件,更改一个文件夹名称,都能及时刷新。这是怎么做到的呢?答案是使用了文件改变通知。先看一个结构typedef struct tagSHCHANGENOTIFYENTRY { DWORD dwEventMask; LPTSTR pszWatchDir; BOOL fRecursive;} SHCHANGENOTIFYENTRY;要接收文件改
2009-08-27 15:53:00
3990
1
原创 Windows Mobile下的窗体半透明实现
这里说的半透明,是说把窗体下的桌面内容透出来。windows mobile不像windows那么方便,有SetLayeredWindowAttributes可以使用来实现半透明。在显示一个窗体之前,需要得到得到桌面DC,将其拷贝至内存DC中,再将相应区域的内容拷贝至窗口DC,最后进行半透明处理。 用到的函数有GetDCCreateCompatibleDCBitBltAlphaB
2009-08-19 09:18:00
4744
8
原创 Windows Mobile下实现图片的3D效果
有些时候需要酷酷的效果,来装扮一下我们的程序。以下是类似S1从右至左滑动的效果示意图。 看起来还有点那个意思吧?其实原理并不复杂,用到了一个画图函数StretchBlt。 函数功能:函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。 函数原型:BOOL StretchBlt(HDC
2009-07-20 11:02:00
5033
2
原创 Windows mobile上获取输入光标位置
用户在输入过程中,光标的位置在不停变化,如何得到这个位置来进行一些操作呢?似乎很简单,GetCaretPos,这个函数能得到光标的位置。看看MSDN上如何说的:GetCaretPosSee AlsoSetCaretPos | POINT | Carets Functions RequirementsOS Versions: Windows CE 1.0 and l
2009-06-02 11:31:00
5154
3
原创 windows mobile下实现程序安装和卸载
安装CAB包的方法,网上一查就有:1)ShellExecuteEx;2)CreateProcess;都要借助wceload.exe来实现。当程序安装成功后,我们在设置->系统->删除程序里可以看到已安装程序列表。这些列表信息放在哪里呢?答案是在注册表项HKEY_LOCAL_MACHINE/Security/AppInstall下,在该目录下可以看到刚才提到的相关程序名称。来试试卸载:假如A
2009-05-06 14:41:00
5003
1
原创 windows mobile下文件的压缩与解压缩
zlib是用于数据压缩的函数库,在windows和linux上都被广泛应用。当然,windows mobile上也可以顺利地使用该函数库。先进入到下面的地址去下载一个包,是专门针对wince系统的:http://www.tenik.co.jp/~adachi/wince/zlibce/index.html。其中Download有三项,如果你并不想深入源码的话,选择第三项zlib for Win
2009-04-30 10:24:00
5395
2
原创 Windows Mobile上使用钩子
wince系统对于钩子技术的支持,显然不及windows。有一些技术文档干脆说wince不支持钩子。其实,不尽然。我们还是可以从coredll.dll中,得到一些有用的接口,来实现拦截一些简单的键盘或鼠标的动作。还是代码最有说服力:#define WH_JOURNALRECORD 0#define WH_JOURNALPLAYBACK 1#define WH_KEYBOARD_
2009-04-14 13:38:00
5217
2
原创 windows mobile中区分cmwap或cmnet接入点
我在之前的一篇文章中谈到了使用网络接入点的问题:http://blog.youkuaiyun.com/pknife/archive/2008/05/21/2467602.aspx,另外的一篇文章演示了如何创建cmwap接入点:http://blog.youkuaiyun.com/pknife/archive/2008/05/22/2469126.aspx。不过,总是觉得什么地方不对劲,说得不清不楚。精心下来仔细研究了
2008-11-07 17:21:00
11383
16
原创 windows mobile中开发九宫格界面的方法
一)使用按钮控件可以做一个最简单的九宫格界面,就是在对话框放上九个按钮,拉拽对齐。如果想要美观一点,再每个按钮都贴张美图。在ppc上非常好做,此界面可响应触笔和按键动作。smartphone上,微软不推荐使用按钮。二)使用ListCtrl(ListView)控件在对话框上使用ListCtrl控件,设置某些属性:View属性设为Icon,等等。使用CListCtrl和CImageList的组合,
2008-10-27 15:43:00
6337
6
原创 windows mobile中求存储空间大小
以下函数可得到主内存信息:BOOL GetStoreInformation( LPSTORE_INFORMATION lpsi );参数定义:typedef struct STORE_INFORMATION { DWORD dwStoreSize; DWORD dwFreeSize;} STORE_INFORMATION, *LPSTORE_INFORMATION;以下函数
2008-10-24 15:38:00
4217
原创 WinCE下的非常用字符串操作函数
Windows CE是一种Unicode环境,使用wchar_t来描述字符型变量。注意,这并不是说它不支持char型字符,char* p = "你好"同样是合法的,只不过在显示的时候必须转换成wchar_t类型。来看看WinCE下的字符串操作函数:wcscatwcschrwcscmpwcscpywcscspnwcslenwcsncatwcsncmpwcsncpywcsnlenwcspbrkwc
2008-09-26 17:05:00
6840
2
原创 WInCE下线程的事件同步
程序开发中,我们经常会用到多线程。而某个线程的运行可能会依赖或影响另一线程的运行。如果一个线程需要通知其他线程某个事件发生了,可使用Event同步事件。先来看看与Event相关的函数:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState,
2008-09-25 13:41:00
6136
原创 windows mobile上调用摄像头接口
使用SHCameraCapture接口可以调出照相机进行拍照、摄像,并得到图片或视频文件的路径。以下代码进行拍照:SHCAMERACAPTURE shcc;ZeroMemory(&shcc, sizeof(shcc));shcc.cbSize = sizeof(shcc);shcc.hwndOwner = NULL;shcc.pszInitialDir
2008-09-04 15:37:00
7392
11
原创 Windows mobile下获取系统图标
这个问题其实是由pocket pc的CFileDialog问题引发来的。 CFileDialog打开后,只能选择My Documents下的目录和文件,功能超弱的说(其实应该叫CDocumentFileDialog才对)。 好想自己做一个Dialog啊,就跟PC上一样,可以选择任务目录和文件...... 枝节不叙,捡点重要的来啰嗦。 用到一个CListCtrl控件,
2008-08-05 16:45:00
2598
1
原创 VS2005编译的程序在XP系统下不能运行的解决办法
我们有这样的经验,在VC6.0、VS2003下使用Use MFC in a shared DLL选项编译出来的程序,如果在一台纯洁的机器上运行,会弹出警告,提示我们缺少某些dll。我们乖乖的把那些库收集起来,打包的时候裹到一起就OK了。 可是,在VS2005下,好日子不再有了。在VS2005下使用Use MFC in a shared DLL选项编译出来的程序,在Windows 2003或
2008-07-25 11:03:00
3485
原创 Windows mobile下写IE cookie
登录csdn一次,会记录下用户名和密码,频繁刷新网页时,并不需要频繁登录。这一切归功于cookie。Cookie文件只是个纯粹的文本文件,以换行符(ASCII=10)为分隔符,格式如下:cnt_uid_wwwfa565c5abe27b0eb1f0497youkuaiyun.com/153656045017629956594200932566429943116*其中第1行为Cookie名称;第2行是Cookie
2008-07-16 14:15:00
1720
2
原创 WinInet开发中的同步和异步区别
同步和异步的概念在此就不啰唆了。以下载一个文件为例,我们来看看同步的做法:1)InternetOpen;2)InternetOpenUrl;3)HttpQueryInfo;4)InternetReadFile;5)InternetCloseHandle。在第2步和第4步,程序会一直等待,直到函数返回。如果要设置超时,可以使用InternetSetOption(不过好像没什么用)。在很多时候,这个函
2008-06-19 15:57:00
6079
8
原创 Windows Mobile手机中存储卡的名称识别
同一块存储卡,插入不同的手机,名称可能会不一样,有的是“存储卡”,有的是“Storage Card”,也许还有别的名称。如何识别呢?看看注册表。HKEY_LOCAL_MACHINE_System/StorageManager/Profiles/SDMemory目录下的Folder参数就是插入存储卡的名称。这个参数只是告诉我们,存储卡插入后会以这个名称来命名。至于此时有没有卡,要靠另外的函数来判断。
2008-06-12 10:33:00
1439
原创 Windows Mobile下WinInet的异步使用方法
codeproject上有一篇老美写的关于HTTP异步的文章:http://www.codeproject.com/KB/IP/asyncwininet.aspx。我做HTTP异步的时候,也是参考了这篇文章,受益匪浅。今天特地翻译出来,与大家共飨。WinInet HTTP的异步方式使用绪论如果你曾经深入MSDN研究过WinInet API,你会注意到可使用异步方式且该方式是被推
2008-06-06 16:05:00
5523
11
原创 Windows mobile下文件关联程序
通常情况下,点击一个mp3文件,会自动地调用Mediaplayer播放。如果需要,我们也可以实现当点击一个特定格式的文件时,调用我们自己的程序来处理。先对注册表进行一些处理。比如我们要把后缀名为.dat的文件进行关联。首先在HKEY_CLASSES_ROOT下建一子目录.dat,Name为Default,Data为datfile。接着还是在HKEY_CLASSES_ROOT下建一子目录datfil
2008-05-30 14:33:00
2547
4
原创 Windows Mobile下界面自适应输入法状态
文章原创,转载请注明,谢谢。PPC中,输入法显示时,界面可供用户操作的空间变小。如何使得界面能自适应输入法状态呢?SIPINFO si = {0}; si.cbSize = sizeof(si);SHSipInfo(SPI_GETSIPINFO, 0, &si, 0);BOOL bShow = si.fdwFlags&SIPF_ON;此时,bShow为真则表示输入法处于显示状态,否则
2008-05-23 11:44:00
1733
1
原创 Windows Mobile下如何拦截电话
本文原创,如需转载,请注明出处!这个功能是我觉得有点遗憾的部分。几个关键点:1)lineInitialize;2)lineOpen;3)实现2中回调,判断dwMsg的值,当为LINE_CALLINFO时,可以得到来电号码,即可进行挂断或其他操作。不过在得到号码时,电话铃声已经响了大概2秒多。也有人说在LINE_CALLSTATE时,就可以得到移动的号码,而电信的号码要在LINE_CALLI
2008-05-22 12:32:00
2001
原创 Windows Mobile下如何拦截短信
本文原创,如需转载,请注明出处!微软的SDK中提供一个Mapirule的例子,展示了如何拦截短信。为了过滤垃圾短信或者拦截某些特定号码的短信,我们需要在ProcessMessage这个函数中插一杠。无非根据发送方电话号码(pspvEmail->Value.lpszW)或短信内容(pspvSubject->Value.lpszW)酌情处理。在编译好mapirule.dll后,要对注册表进
2008-05-22 12:30:00
3233
原创 Windows Mobile下获取cab包安装目录
如果想在程序安装或卸载的时候,实现某些操作,可以改写setup.dll,生成cab包时一同打包。当手机中插有存储卡时,手机会提示程序安装在手机内存还是存储卡。这时如何知道用户选择呢?在Install_Init(...)和Install_Exit(...)两个函数中都有pszInstallDir这个参数。其中后者是最终的安装路径。
2008-05-22 12:29:00
1237
1
原创 Windows Mobile下创建cmwap接入点
程序中如果要使用http或socket连接服务器,需要先连接网络。ConnMgrEstablishConnectionSync函数中的CONNMGR_CONNECTIONINFO参数,不论采用IID_DestNetWAP还是IID_DestNetInternet,似乎都要依赖于手机上的接入点设置。都怪中国移动非要搞什么CMNET、CMWAP,中国特色的通信公司。可以自行创建一接入点。以下代码创建一
2008-05-22 12:27:00
4447
6
原创 Windows Mobile下使用HTML控件
在某些特殊的应用场合,我们很想要一个类似IE功能的模块,定制自己的功能。HTML控件现在向我们张开了怀抱。稍稍奇怪的是,它并不完全支持WAP协议。看来,IE还是做了自己的解析。首先,我们要注册一下控件。把Htmlctrl.h包含进来,调用InitHTMLControl()函数,里面的参数为应用程序句柄。以下代码在MFC中使用:VERIFY(InitHTMLControl(AfxGe
2008-05-22 11:46:00
3007
8
原创 Windows Mobile中GPRS连接网络
Windows Mobile程序中如果要使用http或socket连接服务器,需要先连接网络。可以使用ConnMgrEstablishConnectionSync函数来连接。DWORD dwStatus = 0;HANDLE hConnection = NULL;CONNMGR_CONNECTIONINFO sConInfo;memset(&sConInfo, 0 ,sizeof(CON
2008-05-21 21:51:00
6596
3
原创 Windows Mobile下播放PCM音频的双缓冲用法
最近用libmad做了些mp3解码的工作,顺便也研究了一下windows下播放PCM音频数据的双缓冲用法。libmad的调用在此暂略过不表。libmad解码出来的是16bit的PCM数据,调用windows API可对其实现播放。不过如果解码一段播放一段,听起来会有一顿一顿的感觉,不流畅,究其原因,是没有使用双缓冲。吭哧吭哧研究了半天,终于编码实现,播放出来的效果倒也很流畅。流程如下:1)声明两个
2008-05-21 21:45:00
9366
4
原创 Windows Mobile开发快捷菜单问题
今天在开发群里又有人问到ppc上如何长按弹出快捷菜单。与windows不同的是,ppc并不依靠响应WM_RBUTTONDOWN消息来实现,而是在WM_LBUTTONDOWN来处理。说来也不奇怪,ppc上根本就没有右键。以下是正确的代码:......case WM_LBUTTONDOWN: { SHRGINFO shrg; shrg.cbSize = sizeof(shrg); shr
2008-05-21 21:42:00
2309
原创 windows mobile中创建中文快捷方式
VS2005提供的打包工具,不管是文件名还是快捷方式都只能为英文字符,真是烦躁,弄了好长时间都不得结果,网上也查不到解决办法。没办法,搬出Setup.dll来改写。首先想到重命名。把test.lnk改名为测试.lnk,dopod710上通过。心中暗喜...换部手机试试...郁闷!skyworth850上通不过!怎么办,复制test.lnk到测试.lnk吧,然后再删除test.lnk...CopyF
2008-05-21 17:19:00
4419
3
3D游戏程序设计入门(DirectX 9.0)文档
2009-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人