Windows CE 5.0待机界面定制之二 - 开始菜单

本文介绍如何在Windows CE 5.0中定制开始菜单,包括修改菜单项、定义背景图并加载、绘制菜单背景及处理菜单响应等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始菜单的修改效果如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分支中,增加菜单背景绘制过程

 1 if(hbmStMenuBackGround)
 2 {
 3     HDC hdcmem = CreateCompatibleDC(lpdis->hDC);
 4     if(hdcmem)
 5     {
 6         SelectObject(hdcmem, hbmStMenuBackGround);
 7         BitBlt(lpdis->hDC, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, hdcmem, rc.left, rc.top, SRCCOPY);
 8         DeleteDC(hdcmem);
 9     }
10 }

第四:在StartMenu_ProcessCommand()函数中,处理菜单响应。如:

 1 case IDM_MOBILE:
 2         info.cbSize = sizeof(info);
 3         info.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
 4         info.lpVerb = NULL;
 5         info.lpFile = L"//ResidentFlash//MyMobileApp.exe";
 6         info.lpParameters = NULL;
 7         info.lpDirectory = NULL;
 8         info.nShow = SW_SHOW;
 9         info.hInstApp = NULL;
10         ShellExecuteEx(&info);
11  break;

最后:删除背景图资源

转载于:https://www.cnblogs.com/91program/p/5255740.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值