Mobile如何在系统菜单中添加一个自己的菜单项,拜求!!!!!!!!!!!!!

ro1ck 2008-07-22 06:31:29
如题,目前我要做的就是在系统菜单中添加一个自己的菜单项(比如是“联系人”这个界面,右下脚的“菜单”),并响应自己要实现的功能。分不够的我可以另外开帖给你加上。谢谢~~~~~
...全文
518 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
caixiaohu84 2009-09-17
  • 打赏
  • 举报
回复
支持一下
armtao 2009-07-31
  • 打赏
  • 举报
回复
呵呵,我最近也要用到这方面的东西,真是宝贝啊。
jianghl1984 2009-07-24
  • 打赏
  • 举报
回复
找到了,谢谢大家的辛勤劳动!
ro1ck 2008-07-29
  • 打赏
  • 举报
回复
终于解决了,其实获取当前联系人index的代码在ctxmenu例子中是有的,IDataObject去获取指针进行操作,只是没有对特定联系人进行操作,如果要获取联系人的指针,formatEtc.cfFormat = RegisterClipboardFormat(CFNAME_ITEMREFARRAY); 这个参数必须这样设置。http://msdn.microsoft.com/en-us/library/ms879952.aspx上的菜单view有关联系人的Clipboard format的介绍。

好了,结帖了,非常感谢关注这个帖子的朋友们。特别感谢btsy2000 提供了研究方向,还有ren22342411 ,在菜单问题上的帮助。希望可以和大家一起研究mobile。
ro1ck 2008-07-26
  • 打赏
  • 举报
回复
ren22342411 2008-07-25
  • 打赏
  • 举报
回复
这个可能需要用到POOM方面的东西
需要使用IItem接口了,可能还有
IPimSrcContactListIcon 联系人的图标
IPimSrcContactNew 创建一个联系人
IPimSrcContactSummaryCard 点击一个联系人
IPimSrcContactEdit 编辑
这些接口。。没有深入研究过
可以参照下面这个例子:
\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CPP\win32\PimExProvider

主要还是好好研究POOM
ro1ck 2008-07-25
  • 打赏
  • 举报
回复
搞定了,谢谢,菜单问题差不多了,现在有个关键的问题,比如现在我在联系人添加了个自己的菜单,在菜单响应怎么获得目前联系人的信息呢,比如名称,电话等
ro1ck 2008-07-25
  • 打赏
  • 举报
回复
谢谢:)
ren22342411 2008-07-25
  • 打赏
  • 举报
回复
好好看一下那个例子。。。
我邮箱rr.tj.sse@gmail.com
有问题大家可以一起讨论 :)
ro1ck 2008-07-25
  • 打赏
  • 举报
回复
啊,强,我没有对这个函数进行操作,我修改试试
ren22342411 2008-07-25
  • 打赏
  • 举报
回复
lz我知道你的问题了...你还没有实现接口IContextMenu中
GetCommandString(UINT_PTR idCmd,UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax)
这个方法...
这个方法的作用是把menu的ID和其字符串对应起来的
ro1ck 2008-07-25
  • 打赏
  • 举报
回复
联系人这个com有用过,现在问题在于,比如现在点桌面右下角的联系人,进入联系人界面,而且我的菜单已经嵌入联系人菜单中。比如联系人有3个联系人,"张三","李四","王五",然后我选择"李四"这个联系人,弹出菜单,这时候我的菜单处理函数要如何获得我当前选择的是"李四"呢?
ren22342411 2008-07-24
  • 打赏
  • 举报
回复
要使用IContextMenu这个接口。。。
可以参照一下这个例子,它在TMAIL里右下角的menu添加了两条选项
\Program Files\Windows Mobile 6 SDK\Samples\Common\CPP\Win32\InboxMenuExtensibility\
Contacts也是支持这个接口的
ro1ck 2008-07-24
  • 打赏
  • 举报
回复
在添加菜单项时,为什么要加DelayLoad这个dword键值呢?如果设置为1,菜单响应时,不会调用到自己定义的COM组件的QueryContextMenu函数,而且菜单直接显示的菜单项名称是注册表中默认的字串名。如果设置为0,在COM组件的QueryContextMenu函数里,有个pIdo->GetData(&fe, &sm)函数,会失败,有人知道为什么吗?是不是我注册表中少了什么项?
hnhuibo 2008-07-24
  • 打赏
  • 举报
回复
d
ro1ck 2008-07-24
  • 打赏
  • 举报
回复
wuminxss ,应该是 context:Inbox,class就看具体哪个界面了
ren22342411 2008-07-24
  • 打赏
  • 举报
回复
好好检查一下。。
QueryContextMenu(HMENU hmenu,UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)

InsertMenu ( hmenu, indexMenu, MF_BYPOSITION ¦MF_STRING , idCmdFirst, _T("Menu Test 1") );
InsertMenu ( hmenu, indexMenu, MF_BYPOSITION ¦MF_STRING , idCmdFirst, _T("Menu Test 2") );
为什么两个Menu的ID是相同的?
他们的范围应该在idCmdFirst 和 idCmdLast 之间
还有你现在是不是menu已经扩展出来,只是没有执行么?
ro1ck 2008-07-24
  • 打赏
  • 举报
回复
是空的
ro1ck 2008-07-24
  • 打赏
  • 举报
回复
但是我读出来显示是乱码,并不是菜单名,晕
ro1ck 2008-07-24
  • 打赏
  • 举报
回复
非常感 ren22342411 :),果然是高手啊,方便留下联系方式吗?
向你学习!
呵呵
加载更多回复(13)

7,656

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧