
- •1. Признаки сложных систем. Сложность, присущая программному обеспечению.
- •2. Компоненты объектно-ориентированного подхода.
- •3. Объекты и классы с точки зрения объектно-ориентированного проектирования.
- •4. Модели и диаграммы, используемые в объектно-ориентированном подходе.
- •5. Техника отладки.
- •6. Работа с многофайловыми проектами. Использование включаемых файлов.
- •9. Простое наследование. Контроль доступа к атрибутам класса.
- •10. Виртуальные функции (вф) и абстрактные классы.
- •11. Множественное и виртуальное наследование.Множественное наследование
- •12 Перегрузка операций
- •13. Шаблоны функций, макросы, inline-функции.
- •14. Шаблоны классов.
- •15. Обработка исключительных ситуаций, структурная обработка исключений.
- •16. Пространства имён. Кратко о механизме пространства имен
- •Зачем нужен механизм пространства имен?
- •Имитация средствами языка Си
- •Правило составления имени
- •Недостатки
- •17 Строки и потоки.
- •18.Стандартная библиотека: Контейнеры
- •19 Реализация устойчивости объектов средствами mfc.
- •20. Структура Windows-приложения WinApi
- •21. Структура Windows-приложения, использующего библиотеку mfc
- •Документы и их представление
- •22. Обработка сообщений
- •23. Контекст устройства
- •24.Объекты gdi
- •25.Использование контекста отображения в памяти.
- •26.Режимы отображения.
- •27.Работа с меню. Обработка сообщений.
- •28.Работа с диалогами. Обработка сообщений.
- •29. Работа с полями ввода и кнопками.
- •30. Работа со списками и выпадающими списками. Работа со списком
- •Работа с комбинированном списком
- •Инициализация
- •Операции со строками
- •31. Классы CimageList и CtreeCtrl. Класс cImageList
- •Изменение содержимого списка
- •32. Классы CimageList и ClistCtrl. Класс cImageList
- •Изменение содержимого списка
- •Создание просмотра списка
- •Работа со столбцами
- •Функции для работы со списком в целом
- •Рабочие области просмотра списка
- •Поиск и сортировка записей
- •33. Классы CprogressCtrl, cRichEdit Ctrl, CsliderCtrl, cSpinButton Ctrl.
- •34. Классы cPropertySheet и cPropertyPage.
- •35. Передача информации в диалог и обратно.
- •36. Работа со стандартными диалогами.
- •37.Обработка сообщений от клавиатуры и мыши(wm_char,wm_keYxxx,wm_xButtoNxxx,
- •38 Таймеры, использование времени простоя программы и локального цикла обработки сообщений.
- •39. Библиотеки динамической компоновки. Явная и неявная загрузка dll.
- •Согласование экспортируемых элементов с импортируемыми
36. Работа со стандартными диалогами.
Д.о. –диалоговое окно
Стандартные диалоги применяются для выполнения тех или иных стан. действий. Эти диалоги поддерживают и MFS-классы. Все классы стандартных диалоговых окон являются производными от одного базового класса CCommonDialog
CcommonDialog:: CcommonDialog (CWnd*pParentWnd) – если пар. pParentWnd равен NULL, то род. окном блока диалога будет глав. окно приложения.
У всех стандартых диалогов есть общее св-во они собирают инфу от пользователя, но ничего с ней не делают.
Класс CFileDialog
Этот класс отвечает за создание и работоспособность двух блоков диалога: один позволяет выбрать файл для его последующего открытия, а другой предназначен для выбора места расположения и имени файла при его сохранении.
Конструктор класса, создает объект “стандартный диалог”:
CFileDialog :: CFileDialog (BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR IpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY / OFN_OVERWRITERROMPT, LPCTSTR lpsz Filter = NULL, CWnd*pParentWnd = NULL)
-// если пар. bOpenFileDialog равен TRUE, создается объект “диалог File Open” и объект “диалог File Save As”, если bOpenFileDialog равен FALSE; lpszDefExt – указатель на буфер, кот. содержит расширение имени файла, исп. по умолчанию; IpszFile –узывает на буфер, кот. содержит имя файла(или путь), используемое по умол. при инициализации эл. упр. File Name; lpsz Filter- опред. указ. на буфер, содер. одну или больше пар текстовых строк, зад. фильтры для выбора имен файлов; OFN_HIDEREADONLY – предписывает убрать из блока диалога флажок Read Only; OFN_OVERWRITERROMPT – предписывает блоку диалога Save As выводить окно запроса на перезапись, если выбранный файл уже существует.
Для того чтобы получить имя файла, определ. пользоват. в диалоге, в классе реализованы неск. фун-ий:
virtual CString CFileDialog :: GetPathName() - // возвращ. полное имя файла, включая путь
virtual CString CFileDialog :: GetFileName() - // возвращ. имя файла с расширением
virtual CString CFileDialog :: GetPathExt() - // возвращ. расширение имени файла
virtual CString CFileDialog :: GetFileTitle() - // возвращ. имя файла без расширения
void CFileDialog:: OnFileNameOK ()- // фиксирует имя файла, введенное в диалоге
void CFileDialog:: OnLBSelChangedNofity () - // вызывается, когда измен. выбор в поле списка
POSITION CFileDialog:: GetStartPosition () - // возвращ. позицию первого имени файла в списке, если для диалога разрешен множественный выбор, или NULL, если список пуст.
BOOL CFileDialog:: GetReadOnlyPref () - //позволяет определить, был ли установлен (TRUE) флажок Read Only в диалоге.
Класс CColorDialog
Отвечает за создание модального диалогового окна для выбора и/или создания цветов, кот. определены для вашего дисплея.
Основным членом класса, позволяющим осуществлять настройку объекта этого класса, является структура типа CHOOSECOLOR. Она служит для настройки внешнего вида д.о.
Конструтор объекта “д.о. ”:
CСolorDialog :: CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd*pParentWnd=NULL) - // пар. clrInit определяет первоначально выбранный цвет в формате RGB.
Virtual int CcolorDailog :: DoModal ()- выводит на экран мод. стандарт. д.о. Windows для выбора цвета.
COLORREF CColorDialog :: GetColor ()- //позволяет получить инфу о цвете выбранном пользователем. Выз. после заверш. работы фу-ции CColorDailog :: DoModal
Static COLORREF* CColorDailog ::GetSavedCustomColors () - // возвращ. указ. на массив содер. 16 доплнит. цветов, созданных пользоват.
Класс CFontDialog
Этот класс позволяет создать станд. мод. д.о., предназначенное для выбора одного из зарегистрированных в системе шрифтов, а также его стиля, размера, цвета т.д.
За внешний вид станд. д.о., созд. на основе этого класса отвечает структура типа CHOOSFONT. Она служит для настройки внешнего вида стан. д.о.
Основные фу-ции класса:
virtual int CFontDialog ::DoModal () -//выводит на экр. стан. д.о. для выбора шрифта.
void int CFontDialog :: GetCurrentFont (LPLOGFONT lplf) -// заполняет поля структуры LOGFONT характеристиками текущего выбранного шрифта.
CString CFontDialog :: GetFaceName () -//позволяет получить имя выбранного шрифта
CString CFontDialog :: GetStyleName() - // позволяет получить стиль выбранного шрифта
int CFontDialog :: GetSize() - //позволяет получить размер выб. шрифта
COLORREF CFontDialog :: GetColor() -// позволяет получить шрифт выбранного шрифта
BOOL CFontDialog :: IsStrikeOut() -// опред. будет ли выбран. шрифт зачеркнутым
BOOL CFontDialog :: IsUnderLine() -// опред. будет ли выбран. шрифт подчеркнутым
BOOL CFontDialog :: IsItalic() -// опред. будет ли выбран. шрифт наклонным
Класс CFindReplaceDialog
Этот класс отвечает за создание двух немод. д.о.:Find() для поиска строк и Find/Replace (найти/заменить) для поиска и/или замены.
CFindReplaceDialog :: CfindReplaceDialog()- // конструктор класса, кот. как и другие немодал. д.о. , необходимо создавать динамически
BOOL CFindReplaceDialog::Create (
BOOL bFindDialogOnly,
LPCTSTR lpszFindWhat,
LPCTSTR lpszReplaceWith = NULL,
DWORD dwFlags = FR_DOWN,
CWnd *pParentWnd = NULL ) - // создает объект станд. д.о. Если пар. bFindDialogOnly равен TRUE, создается объект “д.о. Find”, в прот. случае – объект “д.о. Find/Replace ”;
lpstr FindWhat – указывает на буфер, кот. содержит строку, введенную пользователем в поле
FindWhat (что).
lpstr ReplaceWith – указывает на буфер, кот. содержит строку, введен. пользователем в поле ReplaceWith (заменить на).
FR_DOWN - при инициализации д.о. переключатель направления поиска устанавливается в положение Down (вниз),определяя, что поиск будет осущ. от положения курсора до конца документа. Иначе переключ. устан. в полож. Up. -//
CString CFindReplaceDialog :: GetFindString() - // возвращ. заданную о умолчанию строку для поиска
CString CFindReplaceDialog :: GetReplaceString() - //возвращ. заданную по умол. строку, на кот. будут заменятся найденные строки
BOOL CFindReplaceDialog :: MatchWholeWord() - //позволяет определить, хочет ли пользователь осуществить поиск слова целиком, или только его части.
BOOL CFindReplaceDialog :: RaplaceAll() - //позволяет определить, хочет ли пользователь осуществлять автоматическую замену всех найденных строк.
BOOL CFindReplaceDialog :: RaplaceCurrent() - // позволяет определить, хочет ли пользователь заменить найденную строку.
BOOL CFindReplaceDialog ::SearchDown() -// позволяет определить направление поиска. Возвращ. TRUE, поиск осущ. к концу документа; в противном случае – к началу.
Класс CPrintDialog
Этот класс отвечает за создание двух модальных д.о. : Print (печать) и PrintSetup (настройка печати), с помощью которых поль-тель может напечатать документ, выбрать нужный принтер или изменить его параметры.
Настройка объекта осущ. с помощью структуры типа PRINTDLG. Она служит для настройки внешнего вида д.о.
А чтобы иметь представление об установках, необходимых для настройки принтера исп. структуры DEVMODE и DEVNAMES.
Структура DEVNAMES содержит имена драйвера, принтера, и порта вывода, к кот. подключен принтер:
Typedef struct tag DEVNAMES {
WORD wDriverOffset;
WORD wDeviceOffset;
WORD wOutputOffset;
WORD wDefaultl;
} DEVNAMES; -// первые три поля содердат смещения текстовых строк с именами драйвера, принтера и порта вывода. Строки располагаются в памяти непосредственно за этой структурой. Поле wDefault определяет, опис. ли предыдущие поля принтер.
Основные фу-ции класса:
CPrintDialog:: CPrintDialog () – конструктор объекта для станд. мод. д.о. Windows.
virtual int CPrintDialog::DoModal() -// выводит на экран мод. стандарт. д.о. печати
HDC CPrintDialog:: CreatePrinterDC() - //создает и делает текущий контекст устро-ва принтера на базе структур DEVMODE и DEVNAMES.
BOOL CPrintDialog::GetPrinterDC() - // позволяет получить параметры установленного по умол. принтера без открытия д.о.
CString CPrintDialog::GetDeviceName() - // вызывается после DoModal и возвращ. имя текущего выбранного принтера
CString CPrintDialog::GetDriverName() - // вызывается после DoModal и возвращ. имя драйвера тек. выбранного принтера
CString CPrintDialog::GetPortName() - // вызывается после DoModal и возвращ. имя порта вывода тек. выб. принтера.
int CString CPrintDialog:: GetCopies () -// вызывается после DoModal и возврщ. затреб. число копий, кот. нужно напачатать
int CString CPrintDialog:: GetFromPage () -// вызывается после DoModal и возврщ. номер последней печатаемой страницы
int CString CPrintDialog:: GetToPage () -// вызывается после DoModal и возврщ. номер последней печатаемой страницы.
Класс CPageSetupDialog
Этот класс отвечает за создание и функционирования станд. мод. д.о. Windows Page Setup (параметры страницы) с доп. поддержкой установки и модификацией полей печати.
Настройка объекта этого класса осуществляется с помощью структуры типа PAGESETUPDLG.
Основные фу-ции класса.
virtual int CPageSetupDialog::DoModal () - // выводит на экран мод. станд. д.о. для настройки полей, размеров и ориентации страницы, а также параметров принтера.
void CpageSetupDialog:: GetMargins (LPRECT lpRectMargins, LPRECRT lpRectMinMargins) –
// выз. После DoModal и возвращ. значения размеров полей печати текущего выбранного принтера. Если какой-либо пар. нам не нужен- ставим NULL.
Csize CPageSetupDialog :: GetPaperSize () - // выз. После DoModal и возв. Размер бумаги, выб. для тек. принтера.
virtual UINT CPageSetupDialog ::OnDrawPage (CDC *pDC,UINT nMessage,LPRECT lpRect)
-// вызывается фреймом и рисует экранный образ страница печати, кот. затем отображается в д.о. Page Setup (пар. страницы); pDC –указ. на контекст устрой-ва принтера; lpRect- указ. на объект Crect или RECT, содержащей координаты перерисовывания области; nMessage – сообщение определяющее область выводимой страницы. Параметр nMessage может принимать одно из след. значений:
WM_PSD_FULLPAGERECT страница целиком
WM_PSD_MARGINRECT область, ограниченная текущими полями
WM_PSD_GREEKTEXTRECT содержание страницы