我先定义了一个结构:
typedef struct MENULIST 
{
MENUITEMTEMPLATEHEADER menuItemHeader;
MENUITEMTEMPLATE       menuItem[4];
};
在窗体过程中定义:
static MENULIST menuList;
static HMENU hMenu;
在窗体初始化时:
menuList.menuItemHeader.offset=0;
menuList.menuItemHeader.versionNumber=0;
menuList.menuItem[0].mtID=ID_FILE;
menuList.menuItem[0].mtOption=MF_CHECKED;
_tcscpy(menuList.menuItem[0].mtString,_T("文件"));menuList.menuItem[1].mtID=ID_VIEW;
menuList.menuItem[2].mtOption=MF_CHECKED;
_tcscpy(menuList.menuItem[1].mtString,_T("文件"));menuList.menuItem[2].mtID=ID_EDIT;
menuList.menuItem[2].mtOption=MF_CHECKED;
_tcscpy(menuList.menuItem[2].mtString,_T("文件"));hMenu=LoadMenuIndirect(&menuList);
SetMenu(hWnd,hMenu);
请问为什么在窗体显示后,那些菜单项是杂乱的,文本都是乱码呀?

解决方案 »

  1.   

    _tcscpy(menuList.menuItem[0].mtString,_T("文件"));这一句改一下,
    StrCpy(menuList.menuItem[0].mtString, L("文件"));
    记得
    #include "shlwapi.h"
    #pragma comment(lib, "shlwapi.lib")因windows内是用utf16的,所以那样可能会出现乱码,再送你个函数,应该不会出来乱码.
    int utf16_copy(unsigned short* dest, unsigned short* src)
    {
        int count = 0;
        while (count++,*(dest++) = *(src++))
            NULL;
        return count-1;
    }