在WM6里面编写的WIN32程序,资源文件的菜单添加方法。
可以用SHCreateMenuBar()来进行添加,其中须要设置资源句柄,父窗口句柄,和要添加的菜单ID
而用SHInitDialog()可以设置窗口全屏显示,以及是否显示右下角的OK按钮。
如果要按右下角的OK按键退出的话,需要在WM_COMMAND里面对
LOWORD(wParam)==IDOK时,退出程序。
在WM_CREATE里面调用下面的窗口,画菜单即可。
BOOL DrawMenu(HWND hwnd) { SHMENUBARINFO shmbi; 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; }