一、窗口全屏显示,去掉任务栏

//全屏显示//隐藏HHTaskBar窗口代码如下:HWNDhTaskBar=::FindWindow(TEXT("HHTaskBar"),NULL);if(hTaskBar!=NULL){::EnableWindow(hTaskBar,FALSE);::ShowWindow(hTaskBar,SW_HIDE);}intiFullWidth=GetSystemMetrics(SM_CXSCREEN);intiFullHeight=GetSystemMetrics(SM_CYSCREEN);::SetWindowPos(this->m_hWnd,HWND_TOPMOST,0,0,iFullWidth,iFullHeight,SWP_NOOWNERZORDER|SWP_SHOWWINDOW);

二、获取当前程序路径

CStringCscaleweightDlg::GetAppllicationPath(){WCHARbuff[255]={0};::GetModuleFileName(0,buff,255);CStringstrAppFullName;strAppFullName.Format(_T("%s"),buff);CStringstrAppPath=_T("");strAppPath=strAppFullName.Left(strAppFullName.ReverseFind('\\')+1);returnstrAppPath;}

三、加载字库

//加载字体CStringstrFontPath=GetAppllicationPath()+_T("msyh.ttf");if(NULL!=AddFontResource(strFontPath)){::SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);}else{AfxMessageBox(L"字体加载失败");}

程序退出时,卸载字库

CStringstrFontPath=GetApplicationPath()+_T("msyh.ttf");if(RemoveFontResource(strFontPath)){::SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);}elseAfxMessageBox(L"FailedtoUNLOADfont!");

四、加载位图用LoadImage无效

HBITMAPhBitmap=(HBITMAP)::SHLoadDIBitmap(szBitmapFile);

五、要以共享MFC的DLL库的方式发布程序,须将如下目录中DLL全部复制到目标机器上。

C:\ProgramFiles(x86)\MicrosoftVisualStudio8\VC\ce\Dll\armv4i

六、wchar_t*转char*
如,sCaption为 LPCTSTR类型字符串,要转成char *字符串,如下:

intnum=WideCharToMultiByte(CP_OEMCP,NULL,sCaption,-1,NULL,0,NULL,FALSE);char*pChar=newchar[num];WideCharToMultiByte(CP_OEMCP,NULL,sCaption,-1,pChar,num,NULL,FALSE);

七、字体平滑,需要修改注册表

HKEY_LOCAL_MACHINE\\System\\GDI\\ClearTypeDefault=2

八、不关闭屏幕,常期显示工作界面

//电源参数请求更新HANDLEhevReloadActivityTimeouts=OpenEvent(EVENT_ALL_ACCESS,FALSE,_T("PowerManager/ReloadActivityTimeouts"));if(hevReloadActivityTimeouts){SetEvent(hevReloadActivityTimeouts);CloseHandle(hevReloadActivityTimeouts);}

同时,在注册表中也要修改超时设置。

九、Sqlite数据库读写

voidCSimpleModeData::TempTableWrite(CStringCarNo,CStringstrWeight,CStringGoodsName,CStringTime){CStringstr;str.Format(_T("insertintoSimpleModeTempTable(CarNo,GoodsName,Weight,Time)\values('%s','%s','%s','%s')"),CarNo,strWeight,GoodsName,Time);TRACE(str);m_sqliteDB.execQuery(str);}BOOLCSimpleModeData::TempTableRead(CStringstrCarNo){CStringstr;str.Format(_T("select*fromSimpleModeTempTablewhereCarNo='%s'"));TRACE(str);CppSQLite3Queryquery=m_sqliteDB.execQuery(str);if(!query.eof()){wcscpy_s(CGlobal::g_TempTable.CarNo,20,query.fieldValue(1));wcscpy_s(CGlobal::g_TempTable.GoodsName,20,query.fieldValue(2));wcscpy_s(CGlobal::g_TempTable.Weight,20,query.fieldValue(3));returnTRUE;}query.finalize();returnFALSE;}

十、软件重启

#include"windows.h"#include"winioctl.h"#definePOWER_STATE_RESET(DWORD)(0x00800000)#definePOWER_FORCE(DWORD)(0x00001000)extern"C"__declspec(dllimport)DWORDSetSystemPowerState(LPCWSTRpwsSystemState,DWORDStateFlags,DWORDOptions);voidCtestDlg::OnBnClickedButton2(){SetSystemPowerState(NULL,POWER_STATE_RESET,POWER_FORCE);}

十一、字符串转浮点数
_tstof在WinCE中未实现,需要自己实现。如果转成double型可以如下:

doubleStringToDouble(LPCTSTRlpszSrc){TCHAR*endptr;return_tcstod(lpszSrc,&endptr);}