HMENU hMenu = (HMENU)0x00EA00F3;
MENUITEMINFO mii = {0};
mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_SUBMENU | MIIM_DATA;
mii.fType = MFT_STRING;
mii.cch = 256;
mii.dwTypeData = (char*)malloc(sizeof(char)*mii.cch);
if(::GetMenuItemInfo(hMenu, 0, true, &mii))
{
AfxMessageBox(mii.dwTypeData);
}
free(mii.dwTypeData); 

解决方案 »

  1.   

    用GetLastError获取一下失败的错误码,然后用vc的errorlook工具查一下这个错误码的解释
      

  2.   

    HMENU hMenu = (HMENU)0x00EA00F3;
    MENUITEMINFO mii = {0};
    mii.cbSize = sizeof(MENUITEMINFO);
    mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_SUBMENU | MIIM_DATA;
    mii.fType = MFT_STRING;
    mii.cch = 256;
    mii.dwTypeData = (char*)malloc(sizeof(char)*mii.cch);
    if(::GetMenuItemInfo(hMenu, 0, true, &mii))
    {
    AfxMessageBox(mii.dwTypeData);
    }
    free(mii.dwTypeData);LPVOID lpMsgBuf;
    FormatMessage( 
      FORMAT_MESSAGE_ALLOCATE_BUFFER | 
      FORMAT_MESSAGE_FROM_SYSTEM | 
      FORMAT_MESSAGE_IGNORE_INSERTS,
      NULL,
      GetLastError(),
      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
      (LPTSTR) &lpMsgBuf,
      0,
      NULL 
      );
    // Process any inserts in lpMsgBuf.
    // ...
    // Display the string.
    ::MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
    // Free the buffer.
    ::LocalFree( lpMsgBuf );显示操作成功!