在WM6里面编写的WIN32程序,资源文件的菜单添加方法。
可以用SHCreateMenuBar()来进行添加,其中须要设置资源句柄,父窗口句柄,和要添加的菜单ID
而用SHInitDialog()可以设置窗口全屏显示,以及是否显示右下角的OK按钮。
如果要按右下角的OK按键退出的话,需要在WM_COMMAND里面对
LOWORD(wParam)==IDOK时,退出程序。
在WM_CREATE里面调用下面的窗口,画菜单即可。
ZeroMemory(&shmbi, sizeof(shmbi));
shmbi.cbSize = sizeof(shmbi);
shmbi.dwFlags = SHCMBF_HMENU;
shmbi.nToolBarId = IDR_MENU1; // The menu id
shmbi.hwndParent = hwnd; // The dialog handle
shmbi.hInstRes = g_hInstance; // The resource handle
if (!SHCreateMenuBar(&shmbi))
{
TCHAR szBuf[128];
swprintf(szBuf, TEXT("SHCreateMenuBar :%d"), GetLastError());
MessageBox(NULL, szBuf,
TEXT("Error"), MB_OK | MB_ICONERROR);
return FALSE;
}
SHINITDLGINFO shidi;
shidi.hDlg = hwnd;
shidi.dwFlags = SHIDIF_SIZEDLGFULLSCREEN;
shidi.dwMask = SHIDIM_FLAGS;
if (!SHInitDialog(&shidi))
{
TCHAR szBuf[128];
swprintf(szBuf, TEXT("SHInitDialog :%d"), GetLastError());
MessageBox(NULL, szBuf,
TEXT("Error"), MB_OK | MB_ICONERROR);
return FALSE;
}
SHDoneButton(hwnd, SHDB_SHOW); // Display the OK button on right;
}