我目前正在使用本教程学习 Win32 ,但我很难处理我显示的字符。
以这段代码为例,它在创建时向我的窗口添加了一个菜单:
case WM_CREATE: {
HMENU hMenu, hSubMenu;
HICON hIcon, hIconSm;
hMenu = CreateMenu();
hSubMenu = CreatePopupMenu();
AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "Exit");
AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "File");
hSubMenu = CreatePopupMenu();
AppendMenu(hSubMenu, MF_STRING, ID_STUFF_GO, "&GO");
AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Stuff");
SetMenu(hwnd, hMenu);
hIcon = LoadImage(NULL, "Stuff.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
if (hIcon)
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
else
MessageBox(hwnd, "Could not load large icon!", "Load Error", MB_OK | MB_ICONERROR);
hIconSm = LoadImage(NULL, "Stuff.ico", IMAGE_ICON, 16, 16, LR_LOADFROMFILE);
if(hIconSm)
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);
else
MessageBox(hwnd, "Could not load small icon!", "Load Error", MB_OK | MB_ICONERROR);
}
break;
那是在我的函数中处理从消息循环接收到的 Windows 消息的switch
块内。WndProc
要显示的每个字符串:
"Exit"
"File"
"&GO"
"&Stuff"
在运行时不可读,因为它们显示为小方块,就像代码页不是正确的那样或类似的东西。当我运行教程时,所有字符串都正确显示。我倾向于完全按照教程所说的来帮助我把事情做好,而且它的教学法很好。反正!...
我在用着:
- Microsoft Visual Studio 2008 团队系统;
- 使用 RDP 的 Microsoft Windows Server 2003;
- 本地操作系统是 Windows Vista Ultimate。
有人知道吗?