5622|4

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Win32 SDK 用GetMenuItemInfo获取菜单标题用SetMenuItemInfo设置菜单标题 [复制链接]

非MFC ATL,Win32 SDK 用GetMenuItemInfo获取菜单标题用SetMenuItemInfo设置菜单标题。哪位高手有经验,给点儿代码,我自己的代码用GetLastError用是返回87,快晕了!help me!!

代码:
        MENUITEMINFO mii;
        TCHAR szItemData[256];
        memset(&mii, 0, sizeof(MENUITEMINFO));
        mii.cbSize = sizeof(MENUITEMINFO);   
        mii.fMask = MIIM_TYPE;   
        mii.fType   = MFT_STRING;   
        mii.cch   = 255;
        mii.dwTypeData = szItemData;

        bool ret = GetMenuItemInfo((HMENU)g_hWndMenuBar, IDM_DES, FALSE, &mii);
        int code =  GetLastError();

在线等待!!!

最新回复

bool   ret   =   GetMenuItemInfo((HMENU)g_hWndMenuBar,   IDM_DES,   FALSE,   &mii); 这句出错啦,不能将g_hWndMenuBar强制转化为HMENU, HMENU menu = CommandBar_GetMenu(g_hWndMenuBar,nPosition);   //nPosition为菜单在工具栏中的位置(从0开始) 然后bool   ret   =   GetMenuItemInfo(menu ,   IDM_DES,   FALSE,   &mii); 应该就可以了。   详情 回复 发表于 2008-12-15 15:53
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
急呀,自己顶!!!
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
MENUITEMINFO menuiteminfo;
DWORD dwErr = 0;
memset( &menuiteminfo, 0, sizeof(MENUITEMINFO) );
menuiteminfo.cbSize         = sizeof( MENUITEMINFO );
menuiteminfo.fMask          = 0x00000040;// MIIM_STRING;
menuiteminfo.fType          = MFT_STRING | 0x00000080;//MIIM_BITMAP;
menuiteminfo.fState         = MFS_ENABLED;
menuiteminfo.dwTypeData     = NULL;

//add by ryo 2005.11.29, to modify the system EJECT menu item.
GetMenuItemInfo( hmenu, uEjectRealID, FALSE, &menuiteminfo );
menuiteminfo.cch++;
szInsEjt = (TCHAR*)malloc( (menuiteminfo.cch)*sizeof(TCHAR) );
if( szInsEjt == NULL )
    return S_FALSE;
menuiteminfo.dwTypeData = szInsEjt;
if( !GetMenuItemInfo( hmenu, uEjectRealID, FALSE, &menuiteminfo ))
{
        dwErr = GetLastError();
}
else
{
        if( m_hBmp != NULL /*&& bSetBmp*/ )
        {
        if( !SetMenuItemBitmaps( hmenu, uEjectRealID, MF_BYCOMMAND, m_hBmp, NULL ))
                dwErr = GetLastError();
        }
}

ModifyMenu ( hmenu, uEjectRealID, MF_BYCOMMAND )
这个是虽然是ATL的,但是使用了同样的东西,给你参考下.
另:MSDN上说的很清楚,先要使用NULL给结构体得到cch的大小,然后才真正的进行操作,看你是否忽略了这个?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢了,我试试啊:)
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

5
 
bool   ret   =   GetMenuItemInfo((HMENU)g_hWndMenuBar,   IDM_DES,   FALSE,   &mii);
这句出错啦,不能将g_hWndMenuBar强制转化为HMENU,
HMENU menu = CommandBar_GetMenu(g_hWndMenuBar,nPosition);   //nPosition为菜单在工具栏中的位置(从0开始)
然后bool   ret   =   GetMenuItemInfo(menu ,   IDM_DES,   FALSE,   &mii); 应该就可以了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表