Mobile开发(今日菜单插件)

      这篇文章不太好整理,再加上最近忙其他的去了(不给公司赚钱,饭碗保不住哦^0^),发的有点慢。今日插件,这个问题刚开始也困扰我很久,我相信会C++的人会感觉容易多了。到处找,到处搜,终于找到个符合自己要求的,您慢慢往下看。

      总体来说应该算是一个今日插件的安装包,将你的程序一起打包,设置好对应的配置,就能实现今日插件的功能。还是先放出文件下载包。今日插件打包

      插件分为三个部分,分别为CabSample,MyToday,setupdll(我没改名字,支持原版,虽然不知道原创作者是谁)。由于C++我不太会,这里就主要解释下对今日菜单有关联的重要地方就行了,其他的请C++帮忙高手解读了。

      CabSample文件中包含主程序,其中有个res文件夹,用来放置今日菜单中显示的ICON图片。

      MyToday文件,主要绘制今日菜单的显示的样式。在MyToday.rc中,下列为今日菜单中ICON的获取路径。

IDI_ICON2               ICON                     " D:\\Works\\Projects\\Symbio.Vancl\\CabSample\\CabSample\\res\\icon_vancl.ico "

      MyToday.cpp文件中,绘制今日菜单。主要代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
VOID PaintAll(HWND hWnd, HDC hdc)
ExpandedBlockStart.gifContractedBlock.gif
{
    TODAYDRAWWATERMARKINFO    dwi;
    dwi.hwnd    
= hWnd;
    dwi.hdc        
= hdc;
    ::GetClientRect(hWnd, 
&(dwi.rc));
    ::SendMessage(g_hWndParent, TODAYM_DRAWWATERMARK, 
0, (LPARAM)&dwi);
    
if(g_bSelected)
        SetTextColor(hdc, SendMessage(g_hWndParent, TODAYM_GETCOLOR, TODAYCOLOR_HIGHLIGHTEDTEXT,
0));
    
else
        SetTextColor(hdc, SendMessage(g_hWndParent, TODAYM_GETCOLOR, TODAYCOLOR_TEXT,
0));
    
    RECT rc(dwi.rc);
    rc.left 
+= 3;
    rc.top 
+= 3;
    SetBkMode(hdc,TRANSPARENT);

    
// first draw icon
    DrawIcon(hdc, rc.left, rc.top, g_hIcon);
    
    
// second draw text
    rc.top -= 4;
    rc.left 
-= 140;
    DrawText(hdc, _T(
"凡客诚品"), -1&rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}

      上面绘制了ICON和文字的坐标,同时全局定义了PLUG_HEIGHT的一个变量,设置今日菜单中该菜单的高度。

      最后一个setupdll.cpp文件,设置了打包安装后所有DLL的安置路径和文件安装后的注册表写入,卸载功能。这个你可以自己查代码选择更改,需要注意的是在没有更改CabSample名的情况下,保留默认启动为CabSample.exe。

      打包插件设置好后,将你自己的程序添加到项目中,如下图:

 

 

将三个项目设为输出项目:

 

同时将你自己的项目在打包程序中设置好,这里就不细介绍了。

      完成打包程序后,如果步骤没有错误,安装*.cab完成后你就能看到你自定义的今日菜单显示出来了,还是展示下完成效果图吧。

      这个插件使用起来比较方便,只需要打包的时候稍微修改下就能给下一个项目使用,但还是存在不少问题。横竖屏幕切换的时候位置不好重新计算,点击进入程序再退出后,今日菜单会有一点点的位移,这个需要你自己使用的时候才能发现。同时希望园友中的C++高手帮忙解决下。还有更好的办法的,请共享,分享才能进步!

      

转载于:https://www.cnblogs.com/Bright-Liang/archive/2009/07/01/1514100.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值