自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小李匪盗的专栏

好好学习,天天向上

  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 Windows Mobile上异形窗口的实现

PC上的常用的软件,如搜狗输入法、金山词霸,都用到了一些异形窗口,配合皮肤的展示   Windows Mobile上也可以实现类似效果   在实现过程中,比较重要的函数有CreateRectRgn、CombineRgn、SetWindowRgn等。对于一张图片,指定一种透明色,可以用抠像素的方法,来组合Region。可以对HDC句柄使用GetPixel来

2010-04-15 15:59:00 4033 2

原创 Windows Mobile上的矢量图形显示

      矢量图形是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。我们来讨论一下在手机上实现矢量图形的方法。      以一幅北京市区域地图为例,将其显示在手机上,并实现平移、缩放、旋转等功能。在Gis系统中,由于地球为球状天体,需将地球坐标经过投影转换成地图坐标,再经过转换成设备屏幕坐标来显示。一般而言,地图坐标系,x轴向右,y轴向上;屏幕坐标系x轴向右,y轴向下。如下图

2010-03-02 14:21:00 4437 5

原创 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 3888 1

原创 百度输入框的秘密

前不久,百度发布了手机输入法。相比较之前的点讯输入法,在用户桌面增加了一个百度搜索框。这里来探究一下搜索框的一些做法。在默认状态下,搜索框是隐藏的,只在Menubar上有一个百度图标显示,如图 当点击百度图标时,图标隐藏,搜索框弹出,如图 搜索框还自适应输入法面板,如图 用CE Spy来查看窗口,可以看到百度图标其实是个窗口,其父窗口是一个MS_SOFTKE

2010-01-06 11:39:00 12184 22

原创 setupdll在CAB安装过程中的一些处理方法

一)获取屏幕分辨率在CAB安装过程中,可以利用setupdll来做一些初始化的工作,极大的方便了我们的开发。但是在setupdll中使用GetSystemMetrics函数获取屏幕分辨率的时候,出现了问题。640x480的分辨率取出来成了320x240,800x480成了400x240...真是奇了怪了。原因也解释不清楚了,据说setupdll是被wceload.exe所加载的,而wceloa

2009-12-07 13:07:00 4409 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 6567 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 8913 7

原创 《Windows Mobile实例开发》电子书提供下载

本人操刀,亲自主罚。:)目前是第一版,持续修订中。主要针对使用C++进行Windows Mobile开发。 《Windows Mobile实例开发》pdf文档下载地址: http://download.csdn.net/source/1609399 http://www.devdiv.net/thread-14073-1-1.html 才疏学浅,望读者海涵。欢迎任何意见和建议。

2009-09-25 09:18:00 5889 7

原创 Windows Mobile中的文件改变通知

在资源管理器中,删除一个文件,更改一个文件夹名称,都能及时刷新。这是怎么做到的呢?答案是使用了文件改变通知。先看一个结构typedef struct tagSHCHANGENOTIFYENTRY {  DWORD dwEventMask;  LPTSTR pszWatchDir;  BOOL fRecursive;} SHCHANGENOTIFYENTRY;要接收文件改

2009-08-27 15:53:00 3907 1

原创 Windows Mobile下的窗体半透明实现

这里说的半透明,是说把窗体下的桌面内容透出来。windows mobile不像windows那么方便,有SetLayeredWindowAttributes可以使用来实现半透明。在显示一个窗体之前,需要得到得到桌面DC,将其拷贝至内存DC中,再将相应区域的内容拷贝至窗口DC,最后进行半透明处理。 用到的函数有GetDCCreateCompatibleDCBitBltAlphaB

2009-08-19 09:18:00 4714 8

原创 Windows Mobile下实现图片的3D效果

有些时候需要酷酷的效果,来装扮一下我们的程序。以下是类似S1从右至左滑动的效果示意图。      看起来还有点那个意思吧?其实原理并不复杂,用到了一个画图函数StretchBlt。 函数功能:函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。  函数原型:BOOL StretchBlt(HDC

2009-07-20 11:02:00 4967 2

原创 Windows mobile上获取输入光标位置

 用户在输入过程中,光标的位置在不停变化,如何得到这个位置来进行一些操作呢?似乎很简单,GetCaretPos,这个函数能得到光标的位置。看看MSDN上如何说的:GetCaretPosSee AlsoSetCaretPos | POINT | Carets Functions RequirementsOS Versions: Windows CE 1.0 and l

2009-06-02 11:31:00 5084 3

原创 windows mobile下实现程序安装和卸载

安装CAB包的方法,网上一查就有:1)ShellExecuteEx;2)CreateProcess;都要借助wceload.exe来实现。当程序安装成功后,我们在设置->系统->删除程序里可以看到已安装程序列表。这些列表信息放在哪里呢?答案是在注册表项HKEY_LOCAL_MACHINE/Security/AppInstall下,在该目录下可以看到刚才提到的相关程序名称。来试试卸载:假如A

2009-05-06 14:41:00 4926 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 5311 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 5145 2

原创 windows mobile中区分cmwap或cmnet接入点

我在之前的一篇文章中谈到了使用网络接入点的问题:http://blog.csdn.net/pknife/archive/2008/05/21/2467602.aspx,另外的一篇文章演示了如何创建cmwap接入点:http://blog.csdn.net/pknife/archive/2008/05/22/2469126.aspx。不过,总是觉得什么地方不对劲,说得不清不楚。精心下来仔细研究了

2008-11-07 17:21:00 11238 16

原创 windows mobile中开发九宫格界面的方法

一)使用按钮控件可以做一个最简单的九宫格界面,就是在对话框放上九个按钮,拉拽对齐。如果想要美观一点,再每个按钮都贴张美图。在ppc上非常好做,此界面可响应触笔和按键动作。smartphone上,微软不推荐使用按钮。二)使用ListCtrl(ListView)控件在对话框上使用ListCtrl控件,设置某些属性:View属性设为Icon,等等。使用CListCtrl和CImageList的组合,

2008-10-27 15:43:00 6251 7

原创 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 4153

原创 WinCE下的非常用字符串操作函数

Windows CE是一种Unicode环境,使用wchar_t来描述字符型变量。注意,这并不是说它不支持char型字符,char* p = "你好"同样是合法的,只不过在显示的时候必须转换成wchar_t类型。来看看WinCE下的字符串操作函数:wcscatwcschrwcscmpwcscpywcscspnwcslenwcsncatwcsncmpwcsncpywcsnlenwcspbrkwc

2008-09-26 17:05:00 6739 3

原创 WInCE下线程的事件同步

程序开发中,我们经常会用到多线程。而某个线程的运行可能会依赖或影响另一线程的运行。如果一个线程需要通知其他线程某个事件发生了,可使用Event同步事件。先来看看与Event相关的函数:HANDLE CreateEvent(  LPSECURITY_ATTRIBUTES lpEventAttributes,   BOOL bManualReset,   BOOL bInitialState,  

2008-09-25 13:41:00 6044 1

原创 windows mobile上调用摄像头接口

使用SHCameraCapture接口可以调出照相机进行拍照、摄像,并得到图片或视频文件的路径。以下代码进行拍照:SHCAMERACAPTURE shcc;ZeroMemory(&shcc, sizeof(shcc));shcc.cbSize             = sizeof(shcc);shcc.hwndOwner          = NULL;shcc.pszInitialDir

2008-09-04 15:37:00 7286 11

原创 Windows mobile下获取系统图标

这个问题其实是由pocket pc的CFileDialog问题引发来的。 CFileDialog打开后,只能选择My Documents下的目录和文件,功能超弱的说(其实应该叫CDocumentFileDialog才对)。 好想自己做一个Dialog啊,就跟PC上一样,可以选择任务目录和文件...... 枝节不叙,捡点重要的来啰嗦。 用到一个CListCtrl控件,

2008-08-05 16:45:00 2519 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 3430

原创 Windows mobile下写IE cookie

登录csdn一次,会记录下用户名和密码,频繁刷新网页时,并不需要频繁登录。这一切归功于cookie。Cookie文件只是个纯粹的文本文件,以换行符(ASCII=10)为分隔符,格式如下:cnt_uid_wwwfa565c5abe27b0eb1f0497csdn.net/153656045017629956594200932566429943116*其中第1行为Cookie名称;第2行是Cookie

2008-07-16 14:15:00 1664 2

原创 WinInet开发中的同步和异步区别

同步和异步的概念在此就不啰唆了。以下载一个文件为例,我们来看看同步的做法:1)InternetOpen;2)InternetOpenUrl;3)HttpQueryInfo;4)InternetReadFile;5)InternetCloseHandle。在第2步和第4步,程序会一直等待,直到函数返回。如果要设置超时,可以使用InternetSetOption(不过好像没什么用)。在很多时候,这个函

2008-06-19 15:57:00 5981 8

原创 Windows Mobile手机中存储卡的名称识别

同一块存储卡,插入不同的手机,名称可能会不一样,有的是“存储卡”,有的是“Storage Card”,也许还有别的名称。如何识别呢?看看注册表。HKEY_LOCAL_MACHINE_System/StorageManager/Profiles/SDMemory目录下的Folder参数就是插入存储卡的名称。这个参数只是告诉我们,存储卡插入后会以这个名称来命名。至于此时有没有卡,要靠另外的函数来判断。

2008-06-12 10:33:00 1394

原创 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 5388 11

原创 Windows mobile下文件关联程序

通常情况下,点击一个mp3文件,会自动地调用Mediaplayer播放。如果需要,我们也可以实现当点击一个特定格式的文件时,调用我们自己的程序来处理。先对注册表进行一些处理。比如我们要把后缀名为.dat的文件进行关联。首先在HKEY_CLASSES_ROOT下建一子目录.dat,Name为Default,Data为datfile。接着还是在HKEY_CLASSES_ROOT下建一子目录datfil

2008-05-30 14:33:00 2468 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 1677 1

原创 Windows Mobile下如何拦截电话

本文原创,如需转载,请注明出处!这个功能是我觉得有点遗憾的部分。几个关键点:1)lineInitialize;2)lineOpen;3)实现2中回调,判断dwMsg的值,当为LINE_CALLINFO时,可以得到来电号码,即可进行挂断或其他操作。不过在得到号码时,电话铃声已经响了大概2秒多。也有人说在LINE_CALLSTATE时,就可以得到移动的号码,而电信的号码要在LINE_CALLI

2008-05-22 12:32:00 1976

原创 Windows Mobile下如何拦截短信

本文原创,如需转载,请注明出处!微软的SDK中提供一个Mapirule的例子,展示了如何拦截短信。为了过滤垃圾短信或者拦截某些特定号码的短信,我们需要在ProcessMessage这个函数中插一杠。无非根据发送方电话号码(pspvEmail->Value.lpszW)或短信内容(pspvSubject->Value.lpszW)酌情处理。在编译好mapirule.dll后,要对注册表进

2008-05-22 12:30:00 3122

原创 Windows Mobile下获取cab包安装目录

如果想在程序安装或卸载的时候,实现某些操作,可以改写setup.dll,生成cab包时一同打包。当手机中插有存储卡时,手机会提示程序安装在手机内存还是存储卡。这时如何知道用户选择呢?在Install_Init(...)和Install_Exit(...)两个函数中都有pszInstallDir这个参数。其中后者是最终的安装路径。

2008-05-22 12:29:00 1207 1

原创 Windows Mobile下创建cmwap接入点

程序中如果要使用http或socket连接服务器,需要先连接网络。ConnMgrEstablishConnectionSync函数中的CONNMGR_CONNECTIONINFO参数,不论采用IID_DestNetWAP还是IID_DestNetInternet,似乎都要依赖于手机上的接入点设置。都怪中国移动非要搞什么CMNET、CMWAP,中国特色的通信公司。可以自行创建一接入点。以下代码创建一

2008-05-22 12:27:00 4384 6

原创 Windows Mobile下使用HTML控件

在某些特殊的应用场合,我们很想要一个类似IE功能的模块,定制自己的功能。HTML控件现在向我们张开了怀抱。稍稍奇怪的是,它并不完全支持WAP协议。看来,IE还是做了自己的解析。首先,我们要注册一下控件。把Htmlctrl.h包含进来,调用InitHTMLControl()函数,里面的参数为应用程序句柄。以下代码在MFC中使用:VERIFY(InitHTMLControl(AfxGe

2008-05-22 11:46:00 2913 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 6495 4

原创 Windows Mobile下播放PCM音频的双缓冲用法

最近用libmad做了些mp3解码的工作,顺便也研究了一下windows下播放PCM音频数据的双缓冲用法。libmad的调用在此暂略过不表。libmad解码出来的是16bit的PCM数据,调用windows API可对其实现播放。不过如果解码一段播放一段,听起来会有一顿一顿的感觉,不流畅,究其原因,是没有使用双缓冲。吭哧吭哧研究了半天,终于编码实现,播放出来的效果倒也很流畅。流程如下:1)声明两个

2008-05-21 21:45:00 9247 5

原创 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 2252

原创 windows mobile中创建中文快捷方式

VS2005提供的打包工具,不管是文件名还是快捷方式都只能为英文字符,真是烦躁,弄了好长时间都不得结果,网上也查不到解决办法。没办法,搬出Setup.dll来改写。首先想到重命名。把test.lnk改名为测试.lnk,dopod710上通过。心中暗喜...换部手机试试...郁闷!skyworth850上通不过!怎么办,复制test.lnk到测试.lnk吧,然后再删除test.lnk...CopyF

2008-05-21 17:19:00 4329 4

Windows Mobile实例开发

pknife出品 有详尽的开发实例 不可多得

2009-08-27

3D游戏程序设计入门(DirectX 9.0)文档

D3D很好的入门指导,包含 1)必备的数学知识; 2)Direct3D基础; 3)实用的Direct3D; 4)着色器和效果。

2009-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除