一、視窗全屏顯示,去掉工作列
<code>//全屏顯示</code>
<code>//隐藏HHTaskBar視窗代碼如下: </code>
<code>HWND</code> <code>hTaskBar = ::FindWindow(TEXT(</code><code>"HHTaskBar"</code><code>), NULL); </code>
<code>if</code> <code>(hTaskBar != NULL) </code>
<code>{ </code>
<code> </code><code>::EnableWindow(hTaskBar, FALSE); </code>
<code> </code><code>::ShowWindow(hTaskBar, SW_HIDE); </code>
<code>} </code>
<code>int</code> <code>iFullWidth = GetSystemMetrics(SM_CXSCREEN);</code>
<code>int</code> <code>iFullHeight = GetSystemMetrics(SM_CYSCREEN);</code>
<code>::SetWindowPos(</code><code>this</code><code>->m_hWnd, HWND_TOPMOST, 0, 0, iFullWidth, iFullHeight,</code>
<code> </code><code>SWP_NOOWNERZORDER|SWP_SHOWWINDOW);</code>
二、擷取目前程式路徑
<code>CString CscaleweightDlg::GetAppllicationPath()</code>
<code>{</code>
<code> </code><code>WCHAR</code> <code>buff[255]={0};</code>
<code> </code><code>::GetModuleFileName(0,buff,255);</code>
<code> </code><code>CString strAppFullName;</code>
<code> </code><code>strAppFullName.Format(_T(</code><code>"%s"</code><code>),buff);</code>
<code> </code><code>CString strAppPath = _T(</code><code>""</code><code>);</code>
<code> </code><code>strAppPath = strAppFullName.Left(strAppFullName.ReverseFind(</code><code>'\\'</code><code>)+1);</code>
<code> </code><code>return</code> <code>strAppPath;</code>
<code>}</code>
三、加載字庫
<code>//加載字型</code>
<code> </code><code>CString strFontPath = GetAppllicationPath()+_T(</code><code>"msyh.ttf"</code><code>);</code>
<code> </code><code>if</code> <code>(NULL != AddFontResource(strFontPath))</code>
<code> </code><code>{</code>
<code> </code><code>::SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0);</code>
<code> </code><code>}</code>
<code> </code><code>else</code>
<code> </code><code>AfxMessageBox(L</code><code>"字型加載失敗"</code><code>);</code>
程式退出時,解除安裝字庫
<code>CString strFontPath = GetAppllicationPath()+_T(</code><code>"msyh.ttf"</code><code>);</code>
<code>if</code><code>(RemoveFontResource(strFontPath))</code>
<code> </code><code>::SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);</code>
<code>else</code>
<code> </code><code>AfxMessageBox(L</code><code>"Failed to UNLOAD font!"</code><code>);</code>
四、加載位圖用LoadImage無效
<code>HBITMAP</code> <code>hBitmap = (</code><code>HBITMAP</code><code>)::SHLoadDIBitmap(szBitmapFile);</code>
五、要以共享MFC的DLL庫的方式釋出程式,須将如下目錄中DLL全部複制到目标機器上。
<code>C:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\Dll\armv4i</code>
六、wchar_t*轉char*
如,sCaption為 LPCTSTR類型字元串,要轉成char *字元串,如下:
<code>int</code> <code>num = WideCharToMultiByte(CP_OEMCP, NULL, sCaption, -1, NULL, 0, NULL, FALSE);</code>
<code>char</code> <code>*pChar = </code><code>new</code> <code>char</code><code>[num];</code>
<code>WideCharToMultiByte(CP_OEMCP, NULL, sCaption, -1, pChar, num, NULL, FALSE);</code>
七、字型平滑,需要修改系統資料庫
<code>HKEY_LOCAL_MACHINE\\System\\GDI\\ClearType </code>
<code>Default=2</code>
八、不關閉螢幕,常期顯示工作界面
<code>//電源參數請求更新</code>
<code>HANDLE</code> <code>hevReloadActivityTimeouts = OpenEvent(EVENT_ALL_ACCESS, FALSE,</code>
<code> </code><code>_T(</code><code>"PowerManager/ReloadActivityTimeouts"</code><code>));</code>
<code>if</code> <code>(hevReloadActivityTimeouts) </code>
<code> </code><code>SetEvent(hevReloadActivityTimeouts);</code>
<code> </code><code>CloseHandle(hevReloadActivityTimeouts);</code>
同時,在系統資料庫中也要修改逾時設定。
九、Sqlite資料庫讀寫
<code>void</code> <code>CSimpleModeData::TempTableWrite(CString CarNo,CString strWeight,CString GoodsName, </code>
<code>CString Time)</code>
<code> </code><code>CString str ;</code>
<code> </code><code>str.Format(_T("insert into SimpleModeTempTable(CarNo,GoodsName,Weight,Time)\</code>
<code> </code><code>values(</code><code>'%s'</code><code>,</code><code>'%s'</code><code>,</code><code>'%s'</code><code>,</code><code>'%s'</code><code>)"),CarNo,strWeight,GoodsName,</code>
<code> </code><code>Time);</code>
<code> </code><code>TRACE(str);</code>
<code> </code><code>m_sqliteDB.execQuery(str);</code>
<code>BOOL</code> <code>CSimpleModeData::TempTableRead(CString strCarNo)</code>
<code> </code><code>str.Format(_T(</code><code>"select * from SimpleModeTempTable where CarNo = '%s'"</code><code>));</code>
<code> </code><code>CppSQLite3Query query = m_sqliteDB.execQuery(str);</code>
<code> </code><code>if</code><code>(!query.eof())</code>
<code> </code><code>wcscpy_s(CGlobal::g_TempTable.CarNo,20,query.fieldValue(1));</code>
<code> </code><code>wcscpy_s(CGlobal::g_TempTable.GoodsName,20 ,query.fieldValue(2));</code>
<code> </code><code>wcscpy_s(CGlobal::g_TempTable.Weight,20,query.fieldValue(3));</code>
<code> </code><code>return</code> <code>TRUE;</code>
<code> </code><code>query.finalize();</code>
<code> </code><code>return</code> <code>FALSE;</code>
十、軟體重新開機
<code>#include "windows.h"</code>
<code>#include "winioctl.h"</code>
<code>#define POWER_STATE_RESET (DWORD)(0x00800000)</code>
<code>#define POWER_FORCE (DWORD)(0x00001000)</code>
<code>extern</code> <code>"C"</code> <code>__declspec</code><code>(</code><code>dllimport</code><code>) </code><code>DWORD</code> <code>SetSystemPowerState(</code><code>LPCWSTR</code> <code>pwsSystemState,</code>
<code>DWORD</code> <code>StateFlags,</code><code>DWORD</code> <code>Options);</code>
<code>void</code> <code>CtestDlg::OnBnClickedButton2()</code>
<code> </code><code>SetSystemPowerState(NULL, POWER_STATE_RESET, POWER_FORCE);</code>
十一、字元串轉浮點數
_tstof在WinCE中未實作,需要自己實作。如果轉成double型可以如下:
<code>double</code> <code>StringToDouble(</code><code>LPCTSTR</code> <code>lpszSrc)</code>
<code> </code><code>TCHAR</code> <code>* endptr;</code>
<code> </code><code>return</code> <code>_tcstod(lpszSrc, &endptr);</code>
<code></code>
本文轉自Chinayu201451CTO部落格,原文連結:http://blog.51cto.com/9233403/197230 ,如需轉載請自行聯系原作者