WINCE应用层开发经验(附代码)
hnhyhongmingjiang
这个作者很懒,什么都没留下…
展开
-
在Wince下使用钩子函数
1:什么是钩子从字面上理解,钩子就是想钩住些东西,在程序里可以利用钩子提前处理些Windows消息。 例子:有一个Form,Form里有个TextBox,我们想让用户在TextBox里输入的时候,不管敲键盘的哪个键,TextBox里显示的始终为“A”,这时我们就可以利用钩子监听键盘消息,先往Windows的钩子链表中加入一个自己写的钩子监听键盘消息,只要一按下键盘就会产生一个键盘消息,我们的原创 2008-02-26 09:35:00 · 1337 阅读 · 1 评论 -
BMP格式
BMP(全称Bitmap)是标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图象深度可选以外,不采用其他任何压缩。BMP文件的图像深度可选lbit、4bit、8bit及24bit。 NETC下面详细解说BMP图象格式,BMP解码及BMP在LCD显示程序!一.BMP文件格式1.位图文件头:14字节2.位图信息头转载 2012-05-04 15:32:09 · 4294 阅读 · 0 评论 -
WINCE同时半透明和透明
这是前两天遇到的一个问题,一幅图片含有要透明(或要屏蔽),即不显示的颜色(TransParentBlt),而且还需要使其半透明(AlphaBlend),例如显示效果为一个圆形的半透明球。上网搜了一下也没找到什么有用的信息,因此自己没办法自己想了一下,解决方法如下:void AlphaBmp(HDC hdc,HBITMAP hBitmap,int x,int y,short limit,HRGN原创 2012-04-28 11:35:30 · 3556 阅读 · 0 评论 -
WinCE中解决“图片采集及压缩”问题的开发历程
代码涉及知识点:1.DLL的创建。2.函数传入参数,传出参数。3.位图格式。4.位图的位运算及格式转换。5.文件操作。6.DLL的调用7.……一、图片格式转换的DLL项目//****************************//**WinCeCppCamDll项目//**本项目中引用了 开发板公司提供的摄像头驱动DLL文件一个//*******转载 2012-02-14 16:47:43 · 3783 阅读 · 0 评论 -
WinCE桌面助手-远程控制工具
《WinCE桌面助手》基本实现了远程操作WinCE设备的功能,支持鼠标和键盘。而这个远程键盘工具,除了支持键盘外,还支持远程字符粘贴,挺有想法的一个功能,在某些时候,很有作用。 CeKeyboard的界面如下图所示。 复制需要拷贝到设备中的字符串,在CE设备端把焦点聚焦到待输入框内,然后点击“Paste to device”即可。这样,就可以很方便的输入转载 2011-12-06 16:21:48 · 7141 阅读 · 2 评论 -
wince窗口 屏幕拷贝为位图
#define PW_WINDOW 9001#define PW_CLIENT 9002HBITMAP CMyProgramDlg::CopyScreenToBitmap(LPRECT lpRect){ HDC原创 2011-03-17 11:24:00 · 4286 阅读 · 0 评论 -
WINCE使用OpengL ES 显示文字的实现
<br />使用OpengL ES 显示文字对opengl es 初学者来说,可谓一个不大不小的麻烦。有人是利用了Opengl ES API封装了一些dll库来实现,例如glfont,不过用起来就像浮云,很不灵活。这里简单描述下,我在wince上实现opengl es显示文字的思路。显示文字的实质其实也就是显示一张纹理,显示一个纹理很简单,那么我们的重点即是如何产生一个上面写有文字的纹理。 实现的思路是这样的: 1.创建一张与设备相关的GDI位图。 2.创建一个兼容DC,把步骤1创建的位图选入到DC中。 3原创 2011-04-01 16:58:00 · 5094 阅读 · 0 评论 -
WinCE下实现一个简单WEB服务器
<br />WinCE下网络通信方面的代码:WinCE下实现一个简单WEB服务器<br />功能非常简单,就是提供一个最基本的HTTP服务功能,不过这方面的应用还是挺多的,比如当你做一些控制方面的嵌入设备时,用户很可能就要求提供一个基于WEB的远程管理功能。<br />好了,现在开始做一些简单的介绍:<br />HTTP是一种基于文本对话的应用层协议,其版本历经了HTTP/0.9、HTTP/1.0、HTTP1.1几次修订,协议具体内容可以从RFC1945、RFC2068查到。该协议所包含的通信机制相对来说非原创 2011-03-17 11:16:00 · 5068 阅读 · 5 评论 -
tinyxml在wince下的用法
<br />1.//包含XML解析类文件头<br />#include "tinyxml.h"<br />2.定义变量<br />TiXmlDocument * m_pXml;<br />bool m_bLoadXml;<br />3.读函数<br />BOOL CAlarmDlg::ReadCFGFile() <br />{<br /> m_pXml=new TiXmlDocument();<br /> BOOL flag=FALSE;<br />#ifdef MIPS<br /> m_bLoadX翻译 2011-03-17 11:11:00 · 2117 阅读 · 0 评论 -
WINCE 文件搜索效率比较
1:递归搜索typedef struct tagFILELIST { BYTE nFileType; WCHAR wchFileName[MAX_PATH]; WCHAR wchFilePath[MAX_PATH]; }FILEINFO, *PFILEINFO;void GetAllFileInfo(WCHAR *pFilePath) { W原创 2012-05-09 16:06:20 · 3093 阅读 · 0 评论 -
WINCE STL使用回忆
好久木有用STL的东东了,现在弄几个经常需要注意的地方1:MAP插入数据 ///########################## #include #include #include #include using namespace std; #define TSTRING std::wstring //////##################原创 2012-05-28 16:15:29 · 3287 阅读 · 0 评论 -
算法优化:rgb向yuv的转化最优算法,ALPHABLEND算法优化快得让你吃惊!
朋友曾经给我推荐了一个有关代码优化的pdf文档《让你的软件飞起来》,看完之后,感受颇深。为了推广其,同时也为了自己加深印象,故将其总结为word文档。下面就是其的详细内容总结,希望能于己于人都有所帮助。 速度取决于算法同样的事情,方法不一样,效果也不一样。比如,汽车引擎,可以让你的速度超越马车,却无法超越音速;涡轮引擎,可以轻松 超越音障,却无法飞出地球;如果有火箭发动机,就可以到达火转载 2013-09-09 13:49:46 · 3579 阅读 · 0 评论 -
WINCE-MFC-CDC使用出现的4KB内存泄露解决办法,坑爹的MFC
今天调试一个程序,为了偷懒想直接用以前的MFC的程序,顺手开了自己的内存监控软件,结果发现果然MFC存在一个BUG,其实也不算是BUG,只是没有在正常的使用中注意到特殊的用法MFC的CDC一直会有4KB的内存泄露HDC hdc = ::GetDC(m_hWnd);CDC* pDC=CDC::FromHandle(hdc);//把这句注释掉,现象没有再重现 // ........原创 2012-09-18 21:59:36 · 4142 阅读 · 0 评论 -
wince CString转换为十六进制,串口工具
在网上搜到一个程序实现了字符串转16进制的代码。不是一两个函数就能完成的,要自己实现过程: 1/**//** 2 @brief StrToHex ASCII版本 3 @param lpSrc 源字符串 4 @param chTag 显示分隔符,默认为0表示空字符 5 @return 返回转化后16进制字符串 6*/ 7static string StringToH翻译 2012-07-04 17:02:48 · 3830 阅读 · 0 评论 -
wince UI开发深入研究
1:WINCE UI开发图形渲染选择后续2:WINCE UI 利器xnview3:图片打包内存解压技术wince上图片的高效显示一直是一个问题,最近在TELECHIP系列上在研究图形如何在更高效的显示,决定放弃以前的UI架构,目前暂时准备实验的是一个打包资源然后内存读取再利用图形加速这块,目前初步实验阶段,先记录下#include #include #includ原创 2012-05-21 11:02:00 · 5196 阅读 · 0 评论 -
WinCE 插上网线后3G拨号 拨上号但是无法通过3G模块连接网络
WinCE 插上网线后3G拨号 拨上号但是无法通过3G模块连接网络分类: Wince2010-11-16 11:49 263人阅读 评论(0) 收藏 举报这个是前一段时间做的东西今天想起来还是写的篇博客,算是个总结也便于自己今后查找,WinCE的自身的拨号存在一个问题就是在LAN口同时有效的情况下虽然拨通了,但是OS的路由表不对,所以在3G模块和LAN口需要同时工作情况下,转载 2012-05-23 01:12:51 · 3675 阅读 · 0 评论 -
底层引擎类的架构写法
底层引擎类的架构写法分类: C++ 设计模式2010-05-25 16:25 693人阅读 评论(7) 收藏 举报 做一个project,有时候要将其纵向分几层。最上一层是UI层,底层则是引擎层。对于这二者之间的关系还是很有意思的。 以前做过的一个项目:由于UI的每个widget对应一个底层引擎(一个窗口负责语音输入,一个负责手写输入;那:我们把底层翻译 2012-05-23 10:23:27 · 2731 阅读 · 0 评论 -
CE6下兼容和非兼容位图的深入分析
兼容位图即DDB,由CreateCompatibleBitmap创建;非兼容位图即DIB,是由LoadImage、SHLoadBitmap、CreateDIBSection、CreateBitmap创建。非兼容位图和兼容位图有两个本质差别第一个区别是兼容位图的存放空间通常由GWES或显示驱动分配,处于驱动层之中,可以获取到存放数据的物理地址,而非兼容位图的存放空间通常由应用程序分配,处于应转载 2012-06-09 11:55:43 · 3179 阅读 · 1 评论 -
低级错误警示!
unsigned char state=0x04;//判断某个字节第3位是否为1或者为1//下面是错误的做法if (state&0x04==4)//正确的做法state&0x04要加个括号{ RETAILMSG(TRUE, (TEXT("############################################=[you SD ]=======##\r\n")));原创 2012-06-06 15:59:42 · 2607 阅读 · 0 评论 -
wince VS2005工程更换SDK编译
<br /><br /><br />1.替换工程目录的XXXXX.<br /> SLN文件用右键点击,文本编译方式替换搜索关键字SDK(你原先SDK的名字),全部替换成NEWSDK(新的SDK的名字),完成后保存<br />2.点击工程文件XXXXX.vcproj,文本编译方式替换搜索关键字SDK(你原先SDK的名字),全部替换成NEWSDK(新的SDK的名字),完成后保存原创 2011-01-19 12:07:00 · 1672 阅读 · 0 评论 -
wince VECTOR bug使用记录
wince内存泄漏检查原创 2010-12-21 12:27:00 · 1411 阅读 · 0 评论 -
evc vc字符串转换处理一:(绝对精华,收集所有的例子)
1.头文件中要定义宏; #define UNICODE #define _UNICODE ////////////////////char buf[128]; memset(buf,0,128); strcpy(buf,"你好"); WCHAR pCName[128]; memset(pCName,0,原创 2008-03-06 14:48:00 · 7172 阅读 · 2 评论 -
WINCE音量调节(适用于智能设备)
在此对作者表示感谢。 在此又保存主要是怕自己忘却了。vs2005上通过。void UpdateVolumeFromRegistry(){ HINSTANCE hLibrary = ::LoadLibrary(_T("coredll.dll")); if (NULL == hLibrary) return; FARPROC pProc = ::GetProcAddress(hLibra转载 2008-03-01 14:37:00 · 1930 阅读 · 0 评论 -
PocketPC - EVC开发技巧大集合
//Hard Reset!#include #define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)extern "C" __declspec(dllimport)void SetCleanRebootFlag(void);extern "C" __declspe原创 2008-03-01 14:32:00 · 866 阅读 · 0 评论 -
WinCE 应用程序开机自动运行的又一种方法
WinCE 应用程序开机自动运行的又一种方法 自己编了一个小程序,比如叫ShellExe.exe,将此程序加入到映像里,通过StartUp快捷方式调用ShellExe,ShellExe再去调用SD卡里的应用程序,具体实现步骤如下: 1、 在eVC下编译如下代码: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,原创 2008-03-01 14:42:00 · 1213 阅读 · 1 评论 -
如何获得WM5,CE设备号
如何获得WM5,CE设备号 #include #define MAX_LOADSTRING 100BOOL GetDeviceID( GUID* pGuid){BOOL fRes; DWORD dwBytesReturned =0;DEVICE_ID* pDevID;int wSize;if (NULL == pGuid)return FALSE;memset(pGuid, 0,原创 2008-03-01 14:30:00 · 1244 阅读 · 0 评论 -
wince|ppc|wm5检测SD卡插拔问题收集
在网上搜集了一下,总体思路如下:1.通过消息WM_DEVICECHANGE。1_1BEGIN_MESSAGE_MAP(***, CDialog) //{{AFX_MSG_MAP(***) ON_MESSAGE(WM_DEVICECHANGE, OnMyDeviceChange) //}}AFX_MSG_MAP END_MESSAGE_MAP() //// LRESULT翻译 2008-03-01 14:43:00 · 1980 阅读 · 0 评论 -
怎么获得主窗口的CWnd*?怎么把CWnd*变成HWND?怎么给HWND发送WM_USER消息?SendMessage(hwnd,WM_USER,0,0);可是主窗口接收不到
我用HWND g_WindowHandle=((CMainFrame *)AfxGetMainWnd())->GetSafeHwnd();获取主窗口句柄然后SendMessage(g_WindowHandle,WM_USER,0,0);再然后BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) {if (pMsg->message == WM_USER原创 2008-02-26 15:38:00 · 3309 阅读 · 1 评论 -
用CreateProcess API函数来创建相应的进程
我们可以利用CreateProcess API函数来创建相应的进程,该函数的原型如下: CreateProcess( LPCWSTR lpszImageName, //指向可执行的模块的指针 LPCWSTR lpszCmdLine, //指向可执行命令行字符串的指针 LPSECURITY_ATTRIBUTES lpsaP翻译 2008-02-26 11:58:00 · 1182 阅读 · 0 评论 -
UI界面设计闪烁问题的解决办法
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。这样问题就来了,一般原创 2008-03-23 12:43:00 · 2764 阅读 · 1 评论 -
笔记:把界面上静态文本控件的尺寸根据文本的内容自动调整大小
函数功能:该函数计算指定的正文字符串的高度和宽度。 函数原型:BOOL GetTextExtentPoint32(HDC hdc, LPCTSTR lpString, int cbString, LPSIZE lpSize); 参数:hdc:设备环境句柄。 lpString:指向正文字符串的指针。此字符串不必以/0结束,因为cbString指定了字符串的长度。 cbStri原创 2008-08-27 16:09:00 · 1897 阅读 · 1 评论 -
继续WINCE记录:
<br />好长时间没有更新BLOG了,<br />发现得记录点东西,今天开始吧,先记载一小段<br />/WINCE可用的发送短信代码,魅族M8测试成功/************************************ * 调用范例: * SendSMS(_T("+8613xxxxxxxxx"),_T("测试~")); * * Author:LOJA * Version: 1.0.1.0 * Date: 2009/07/30 * * Smartphone Platforms: Smartphone原创 2010-09-11 12:11:00 · 728 阅读 · 0 评论 -
WINCE自己加载自己想要的字体
<br /> 好在WINCE系统提供了动态加载字体的API: AddFontResource, 利用这个API函数,我们可以动态加载字体,我们可以把字体放在NAND FLASH中,也可以放在SD卡上,因此不必担心NK会变大,消耗宝贵的FLASH资源问题。而且我们可以根据需要加载多个字体(注意:如果加载的字体太多或太大,也会占用系统内存)。但是要注意的是,系统退出时,记得要卸载动态加载的字体,否则会引起内存泄露。应用过程中,需要注意的问题是:结构体LOGFONT 的成员lfFaceName,应该为字体名,字体转载 2010-09-11 12:14:00 · 4544 阅读 · 2 评论 -
WINCE屏蔽可恶的输入法工具条
控件获得焦点时,屏蔽输入法 void Edit::OnSetFocus(CWnd* pOldWnd) { CEdit::OnSetFocus(pOldWnd); // 关闭输入法 HIMC hIMC = ImmGetContext( this->GetSafeHwnd() ); ImmSetOpenStatus ( hIMC, FALSE ); }原创 2009-12-29 15:14:00 · 2744 阅读 · 2 评论 -
调试AVIN后视注册消息BUG改正记录保存
.H文件#define ATLAS_AVP_INSERTED_MSG _T("_ATLAS_AVP_INSERTED_MSG")。。。。。。。。。。。public: virtual BOOL PreTranslateMessage(MSG* pMsg); virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lP原创 2009-12-14 16:00:00 · 902 阅读 · 0 评论 -
内存DC拷贝到内存DC
很久不搞UI,竟然今天在帮同事调试一程序犯了一个错误。看来要吸取教训贴上代码:void CTttttttDlg::OnPaint() {// CPaintDC dc(this); // device context for painting HBITMAP hbmp=NULL; hbmp= SHLoadDIBitmap(TEXT("//Windows//bkg.bmp"));/原创 2009-07-10 14:50:00 · 2970 阅读 · 2 评论 -
天才的发现
PHOTOSHOP做半透明,让程序可以更快的显示半透明的控件和窗口1文件---新建 一个图层(背景选项 :透明)2剪切图片3选中图层 ---复制图层4选中两个图层种的一个。然后选择菜单项:图像--调整--亮度--对比度,直到为黑色5选中图层种的一个,点击图层下面的两个按钮,直到出现ALPHA。。双击,。选中ALPHA通道里的所选区域选项6调整半透明度。然后保存图片OK原创 2009-03-09 00:36:00 · 1392 阅读 · 2 评论 -
CRC校验码
用到CRC校验码,做个笔记循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。 注意: 根据原创 2008-09-02 14:42:00 · 4070 阅读 · 0 评论 -
字体模糊的解决办法 Windows Mobile
今天项目中有一个问题,用DC在一个24位的bitmap上写字体,字体竟然模糊了,因为Windows Mobile的屏幕颜色深度是16位的。 以下是一位网友的代码: 当压缩格式为 BI_BITFIELDS 时,在位图信息(即BITMAPINFOHEADER)后面接着三个DWORD型数据,就是掩码数据, 一般为:0xF800(兰色掩码),0x07E0(绿色掩码),0转载 2008-08-28 15:56:00 · 1561 阅读 · 0 评论 -
wince 移植跨ANDIRIOD下的跨平台UI库Skia界面库
前段时间无意中看到ANDIROID下的界面库SKIA用到了3D结构,本来想把自己以前WINCE上的的UI库重新把-OPGL接口加上上,奈何存资料电脑坏了一直没时间修,于是利用了一些上班空闲时间研究了浏览器技术用到的界面库框架SKIA,花了几天时间基本完成了SKIA库的在WINCE下的移植,其中走了一些弯路,后续开始用SKIA做一些简单的3维界面效果先慢慢做一点记录,忘记以后不记得了,也方便后来原创 2013-09-09 13:56:37 · 4398 阅读 · 2 评论