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


Листинг 1.8. Файл smartpad/smartpad.cpp - часть 6


// На запрос подсказки выводим диалоговую панель // с информацией о программе case TB_HELP: case CM_HELPABOUT: { // Переходник для функции диалоговой панели lpfnDlgProc = (DLGPROC)MakeProcInstance( (FARPROC)DlgProc, hInst);

// Создаем модальную диалоговую панель DialogBox(hInst, "ABOUT", hwnd, lpfnDlgProc);

// Ликвидируем переходник FreeProcInstance((FARPROC) lpfnDlgProc);

return 0; }

// Переключение режима запрета редактирования case CM_EDITSETREADONLY: { // Если режим запрета редактирования выключен, // включаем его if(!bReadOnly) { // Запрещаем редактирование SendMessage(hEdit, EM_SETREADONLY, TRUE, 0L);

// Отмечаем соответствующую строку в меню CheckMenuItem(hmenuAppMenu, CM_EDITSETREADONLY, MF_BYCOMMAND | MF_CHECKED);

// Устанавливаем флаг запрета редактирования bReadOnly = TRUE; } // Если режим запрета редактирования включен, // выключаем его else { SendMessage(hEdit, EM_SETREADONLY, FALSE, 0L); CheckMenuItem(hmenuAppMenu, CM_EDITSETREADONLY, MF_BYCOMMAND | MF_UNCHECKED); bReadOnly = FALSE; }

// Устанавливаем фокус ввода на редактор текста SetFocus(hEdit); return 0; }

case CM_EDITPASTE: case TB_PAST: { SendMessage(hEdit, WM_PASTE, 0, 0L); SetFocus(hEdit); return 0; }

case CM_EDITCOPY: case TB_COPY: { SendMessage(hEdit, WM_COPY, 0, 0L); SetFocus(hEdit); return 0; }

case CM_EDITCUT: case TB_CUT: { SendMessage(hEdit, WM_CUT, 0, 0L); SetFocus(hEdit); return 0; }

case CM_EDITCLEAR: { SendMessage(hEdit, WM_CLEAR, 0, 0L); SetFocus(hEdit); return 0; }

case CM_EDITSELALL: { SendMessage(hEdit, EM_SETSEL, 0, MAKELPARAM(0, -1)); SetFocus(hEdit); return 0; }

case CM_EDITUNDO: case TB_UNDO: { SendMessage(hEdit, EM_UNDO, 0, 0L); SetFocus(hEdit); return 0; }

// Завершаем работу приложения case TB_EXIT: case CM_FILEEXIT: { // Проверяем флаг обновления if(bNeedSave) { // Если в тексте были изменения, // спрашиваем у пользователя, надо ли // сохранять текст в файле if(IDYES == MessageBox(hwnd, "Файл был изменен. Желаете сохранить?", szWindowTitle, MB_YESNO | MB_ICONQUESTION)) { // Если файл ни разу не сохранялся, // спрашиваем путь и имя нового файла if(szCurrentFileName[0] == '\0') { SaveFileAs(hwnd);




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