開始菜單的修改效果如Windows CE 5.0待機介面定製(概述) 中所附圖。
具體的修改,主要是修改WinCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/TASKBAR/stmenu.cpp檔案。
由於是在Windows CE核心原始碼的基礎之上進行修改的,所以沒有將全部代碼貼出來。將修改的主要部分內容,進行了說明。其中所需要的部分變數需要自己根據需要自訂。
第一:修改stmenuData數組
例如增加:{IDM_MOBILE, IDS_MOBILE, IDI_MOBILE, STATIC_ITEM, 0, 0, 0},
等,需要多個菜單的,可增加多行的內容
第二:為菜單定義背景圖,並載入背景圖:hbmStMenuBackGround
第三:在StartMenu_DrawMenuItem()的ODA_SELECT分支中,增加菜單背景繪製過程
if(hbmStMenuBackGround)
{
HDC hdcmem = CreateCompatibleDC(lpdis->hDC);
if(hdcmem)
{
SelectObject(hdcmem, hbmStMenuBackGround);
BitBlt(lpdis->hDC, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, hdcmem, rc.left, rc.top, SRCCOPY);
DeleteDC(hdcmem);
}
}
第四:在StartMenu_ProcessCommand()函數中,處理菜單響應
如
case IDM_MOBILE:
info.cbSize = sizeof(info);
info.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
info.lpVerb = NULL;
info.lpFile = L"//ResidentFlash//MyMobileApp.exe";
info.lpParameters = NULL;
info.lpDirectory = NULL;
info.nShow = SW_SHOW;
info.hInstApp = NULL;
ShellExecuteEx(&info);
break;
最後:移除背景圖資源