wince和Windowsmobile开发中怎样动态修改menubar菜单项的文本(原)
来源:互联网 发布:内网聊天软件 编辑:程序博客网 时间:2024/04/30 04:30
我尝试了很多办法,网上搜到说是用SHGetSubMenu()这个方法获取HMENU,但是我在Aygshell.h中却没找到这个函数。尝试用SHGetMenu()获取,但是获取出来的都是NULL。最后在网上搜到了获取Menubar的HMENU句柄的方法:
首先,建立对应softkey的菜单。
SHMENUBARINFO* smb=new SHMENUBARINFO();
smb->cbSize = sizeof(SHMENUBARINFO);
smb->hInstRes = ::AfxGetInstanceHandle();
smb->hwndParent = m_hWnd;
smb->nToolBarId =IDR_DAYPLANSTART;
smb->nBmpId = 0;
smb->cBmpImages = 0;
smb->dwFlags = SHCMBF_HMENU|SHCMBF_HIDESIPBUTTON;
SHCreateMenuBar(smb);
然后,可以直接保存句柄,或使用SHFindMenuBar()找出句柄,通过下面的方法获取到对应的菜单句柄。
HWND hwndMB=smb->hwndMB;
TBBUTTONINFO tbbi={0};
tbbi.cbSize=sizeof(tbbi);
tbbi.dwMask=TBIF_LPARAM|TBIF_BYINDEX;
::SendMessage(hwndMB,TB_GETBUTTONINFO,0,(LPARAM)&tbbi);
HMENU m_hMenuBar=(HMENU)tbbi.lParam;
最后,使用菜单句柄对里面的菜单项进行修改。
TCHAR szDrawText[100];
wcscpy(&szDrawText[0],sChangeText);sChangeText是CString类型,注意长度不要超过szDrawText定义的长度。
MENUITEMINFO mii;
memset((char *)&mii, 0, sizeof(mii));
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_TYPE;
mii.dwTypeData = &szDrawText[0];
mii.cch = 100;
mii.fType =MFT_STRING;
GetMenuItemInfo(m_hMenuBar, ID_TAKEPHOTO, FALSE, &mii);//获取菜单项信息
SetMenuItemInfo(m_hMenuBar, ID_TAKEPHOTO, FALSE, &mii);//设置菜单项信息
ID_TAKEPHOTO是菜单项的ID
- wince和Windowsmobile开发中怎样动态修改menubar菜单项的文本(原)
- MENUBAR菜单的编写
- 以下程序的功能是:生成菜单条(menubar)、菜单(menu)和菜单项(item1,item2)对象,有 “文 件”菜单,“文件”菜单中有“新建”,“保存”菜单项。
- rcp(插件开发)如何获取MenuBar上的菜单
- Flex的MenuBar中树根层菜单的响应
- tkinter的菜单之menubar
- WinCE中为基于对话框的程序动态增加菜单
- 动态修改菜单和cba的心得
- Menu菜单,MenuBar菜单栏,MenuItem菜单项
- 动态修改smartphone中菜单项
- 怎样修改和或许editbox里的文本
- 【技巧】怎样阻止WindowsMobile的屏幕翻转
- [VC MFC] 修改主菜单和子菜单的文本
- VC 修改主菜单和子菜单的文本
- actionBar和Toolbar中如何动态隐藏和修改menu上的菜单
- MFC修改菜单项文本 VS2008后面的版本
- VC++环境下菜单和工具栏的动态修改技术
- VC++环境下菜单和工具栏的动态修改技术
- C#多态性-抽象类和抽象方法的使用
- 清空 DB2 表中数据的几种方法
- CXGRID问题大荟萃
- C#多态性-抽象类对象引用子类实例
- C#接口-接口概述
- wince和Windowsmobile开发中怎样动态修改menubar菜单项的文本(原)
- C#接口-接口定义
- 设计模式总结——2.1简单工厂模式
- C#接口-接口作用
- API DEMO APPWIGHT 学习
- 打个广告撒,秀一下我自己做的软件,大家可以去看看哦
- wince驱动开发学习笔记
- SUSE telnet实练
- C#接口-接口作用浅谈