怎么动态改变已存在的菜单?

Kevenshao 2008-05-04 04:54:34
如: 一个菜单项为"Mute", 当点击后菜单项变为"Unmute",再次点击又变为"Mute", 如果能动态改变ID更好.
...全文
37 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
biosli 2008-05-05
  • 打赏
  • 举报
回复
同意楼上说法,得到CMenu你就为所欲为了。
还有“动态改变ID”那个ID其实就是一个宏,你自己也可以定义的,不过它说代表的数值可能在你的程序里会响应同一个函数,在设计的时候一定要注意:)
Kevenshao 2008-05-05
  • 打赏
  • 举报
回复
问题已经解决,
TBBUTTONINFO tbi;//this structure contains or receives information for a specific button in a toolbar
memset (&tbi, 0, sizeof (tbi));
tbi.cbSize = sizeof (tbi);
tbi.dwMask = TBIF_TEXT | TBIF_COMMAND;
tbi.idCommand = ID_MUTE;
tbi.pszText = L"Mute";

hMenuBar = (HWND)SHFindMenuBar(hWnd);
SendMessage (hMenuBar, TB_SETBUTTONINFO, ID_UNMUTE, (LPARAM)&tbi);

改变MenuBar 上Button Text and ID.
cytlyy 2008-05-05
  • 打赏
  • 举报
回复
方法很多,如果用消息处理的话可以用LONG SendDlgItemMessage(
HWND hDlg,
int nIDDlgItem,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
其中,hDlg是拥有button控件的父窗口,nIDDlgItem是button的ID,第三个参数用WM_SETTEXT消息设置控件显示内容,wParam是字符串的大小,最后一个参数lParam
是显示的字符串。
Kevenshao 2008-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wang_junjie 的回复:]
查 MSDN 中 GetSubMenu 相关函数
[/Quote]
不好意思,我没说清楚,在windows mobile 中的MenuBar右边是菜单,而左边是一个Button, 我怎么动态改变这个Button 的text?
北方大冬瓜 2008-05-04
  • 打赏
  • 举报
回复
查 MSDN 中 GetSubMenu 相关函数

7,655

社区成员

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

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