我先定义了一个结构:
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);
请问为什么在窗体显示后,那些菜单项是杂乱的,文本都是乱码呀?
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);
请问为什么在窗体显示后,那些菜单项是杂乱的,文本都是乱码呀?
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;
}