Операционная система Microsoft Windows 3.1 для программиста -том 3


Листинг 1.5. Файл dmenu/dmenu.cpp - часть 4


// Вставляем меню "Edit" между меню "File" // и в меню "Help" InsertMenu(hmenu, 1, MF_BYPOSITION | MF_ENABLED | MF_POPUP, (UINT)hmenuEdit, "&Edit");

// Разблокируем строки "Save", "Save as..." // и "Close" в меню "File" EnableMenuItem(hmenuFile, CM_FILESAVE, MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(hmenuFile, CM_FILESAVEAS, MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(hmenuFile, CM_FILECLOSE, MF_ENABLED | MF_BYCOMMAND);

// Блокируем строки "New" и "Open" в меню "File" EnableMenuItem(hmenuFile, CM_FILENEW, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hmenuFile, CM_FILEOPEN, MF_GRAYED | MF_BYCOMMAND);

// Перерисовываем меню DrawMenuBar(hwnd); return 0; }

// Выбрали строку "Close" из меню "File" case CM_FILECLOSE: { // Уничтожаем временное меню "Edit" DestroyMenu(hmenuEdit);

// Удаляем соответствующую строку из меню // верхнего уровня RemoveMenu(hmenu, 1, MF_BYPOSITION);

// Блокируем строки "Save", "Save as..." // и "Close" в меню "File" EnableMenuItem(hmenuFile, CM_FILESAVE, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hmenuFile, CM_FILESAVEAS, MF_GRAYED | MF_BYCOMMAND); EnableMenuItem(hmenuFile, CM_FILECLOSE, MF_GRAYED | MF_BYCOMMAND);

// Разблокируем строки "New" и "Open" в меню "File" EnableMenuItem(hmenuFile, CM_FILENEW, MF_ENABLED | MF_BYCOMMAND); EnableMenuItem(hmenuFile, CM_FILEOPEN, MF_ENABLED | MF_BYCOMMAND);

// Перерисовываем меню DrawMenuBar(hwnd); return 0; }

// Завершаем работу приложения case CM_FILEEXIT: { DestroyWindow(hwnd); return 0; }

default: return 0; } }

case WM_DESTROY: { // Если было создано меню "Edit", // уничтожаем его if(hmenuEdit != NULL) { DestroyMenu(hmenuEdit); }

// Уничтожаем созданные ранее меню DestroyMenu(hmenuFile); DestroyMenu(hmenuHelp); DestroyMenu(hmenu);

PostQuitMessage(0); return 0; }

default: break; } return DefWindowProc(hwnd, msg, wParam, lParam); }




Начало  Назад  Вперед