|
|||
Лабораторная работа №7. Работа со стандартными элементами управления c помощью библиотеки MFC. Пример.. Условие задачи.Лабораторная работа №7 Работа со стандартными элементами управления c помощью библиотеки MFC
Цель работы:приобрести навыки в использовании стандартных элементов управления с помощью библиотеки MFC.
Задание.Написать программу на языке C++, которая использует библиотеку MFC и выполняет действия, описанные в вариантах заданий.
Пример. Условие задачи. Программно поместить в клиентскую область окна текстовое поле и горизонтальную полосу прокрутки. Для полосы прокрутки необходимо задать начальные параметры и обработать ее сообщения. Текущая позиция ползунка прокрутки должна отображаться в текстовом поле.
#include <afxwin.h>
class CWin: public CFrameWnd { CScrollBar m_ScrollBar; CEdit m_edit; int nPage; public: CWin(); void OnHScroll(UINT,UINT, CScrollBar*);
DECLARE_MESSAGE_MAP(); };
BEGIN_MESSAGE_MAP(CWin,CFrameWnd) ON_WM_HSCROLL() END_MESSAGE_MAP()
CWin::CWin() { Create(0,"Заголовок"); m_edit.Create(WS_CHILD|WS_VISIBLE|WS_BORDER, CRect(10,60,200,80), this, 10); m_ScrollBar.Create(WS_CHILD|WS_VISIBLE|SBS_HORZ|SBS_TOPALIGN|WS_TABSTOP, CRect(10, 10, 200, 30), this, 0); nPage=15; m_ScrollBar.SetScrollRange(1,100); m_ScrollBar.SetScrollPos(10); m_edit.SetWindowText("10");
}
void CWin::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { int nCurPos,nPosMin,nPosMax; pScrollBar->GetScrollRange(&nPosMin, &nPosMax); nCurPos=pScrollBar->GetScrollPos(); switch(nSBCode) { case SB_LEFT: nCurPos=nPosMin; break; case SB_LINELEFT: if (nCurPos>nPosMin) nCurPos--; break; case SB_LINERIGHT: if (nCurPos<nPosMax) nCurPos++; break; case SB_RIGHT: nCurPos=nPosMax; break; case SB_PAGERIGHT: nCurPos+=nPage; break; case SB_PAGELEFT: nCurPos-=nPage; break; case SB_THUMBPOSITION: nCurPos=nPos; break; } pScrollBar->SetScrollPos(nCurPos); CString s; s.Format("%d",nCurPos); m_edit.SetWindowText(s); }
class CApp: public CWinApp { public: BOOL InitInstance(); };
BOOL CApp::InitInstance() { CWin *pWnd=new CWin; pWnd->ShowWindow(SW_SHOW); m_pMainWnd=pWnd; return TRUE; }
CApp app; Содержание отчёта
1. Титульный лист. 2. Условие лабораторной работы. 3. Текст программы. 4. Экранные формы с примерами работы программы.
Варианты заданий. 1. Создать в клиентской области окна элемент управления «текстовое поле» и комбинированный список с сортировкой; по двойному щелчку мышью на элементе комбинированного списка он должен быть помещен в текстовое поле.
2. Создать в клиентской области окна элемент управления «статический текст», список с сортировкой и кнопку; по нажатию кнопки выбранный элемент списка должен помещаться в статический текст.
3. Создать в клиентской области окна элемент управления «текстовое поле», список с сортировкой и кнопку; по нажатию кнопки текст из текстового поля должен добавляться в список.
4. Программно поместить в клиентскую область окна статический текст и горизонтальную полосу прокрутки. Для полосы прокрутки необходимо задать начальные параметры и обработать ее сообщения. Текущая позиция ползунка прокрутки должна отображаться в статическом тексте.
5. Программно создать строку состояния и вертикальную полосу прокрутки; для полосы прокрутки задать параметры и обработать сообщения; текущее положение ползунка полосы прокрутки должно выводиться в строку состояния.
6. Создать в клиентской области окна строку состояния и элемент управления «текстовое поле»; любое изменение пользователем текста в текстовом поле должно отражаться в строке состояния.
7. Программно создать горизонтальную полосу прокрутки; задать ее параметры; обработать ее сообщения; текущее положение ползунка полосы прокрутки задает радиус окружности, которую необходимо нарисовать точно в центре клиентской области окна.
8. По нажатию левой кнопки мыши выбирать из текстового поля радиус окружности и рисовать окружность точно в центре клиентской области. Текстовое поле создавать программно, расположив его в клиентской области окна.
9. Программно создать в клиентской области окна кнопку и список, содержащий стили штриховки. По нажатию на кнопку рисовать прямоугольник размером 80х60 пикселей в центре клиентской области окна, заштрихованный выбранным в списке стилем.
10. Создать в клиентской области окна кнопку и комбинированный список с сортировкой; по нажатию на кнопку выбранный элемент удаляется из списка комбинированного списка.
11. Создать в клиентской области окна комбинированный список с возможностью редактирования текстового поля и две кнопки. По нажатию на первую кнопку текст из текстового поля комбинированного списка добавить в его список; по нажатию на вторую кнопку удалить последний элемент из списка комбинированного списка.
12. Создать в клиентской области окна флажок (checkbox), который может находиться в трех состояниях, и статический текст. При смене состояния флажка его текущее состояние необходимо описать в статическом тексте.
13. Создать группу из пяти переключателей (радио-кнопок) с подписями «1», «2», «3», «4», «5» и текстовое поле. При смене состояния радио-группы в текстовое поле вывести номер выделенной радио-кнопки.
14. Создать в клиентской области окна комбинированный список с возможностью редактирования текстового поля и две кнопки. По нажатию на первую кнопку текст из текстового поля комбинированного списка добавить в его список; по нажатию на вторую кнопку очистить список комбинированного списка.
15. Создать в клиентской области окна строку состояния, элемент управления «текстовое поле» и кнопку; по нажатию на кнопку текст из текстового поля отразить в строке состояния.
16. По нажатию на кнопку выбирать из текстовых полей длины полуосей эллипса и рисовать эллипс точно в центре клиентской области. Кнопку и текстовые поля создавать программно, расположив их в клиентской области окна.
17. Создать в клиентской области окна элемент управления «статический текст» и список одиночного выбора с сортировкой; по двойному щелчку мышью на элементе списка он должен быть помещен в статический текст.
18. Создать в клиентской области окна элемент управления «статический текст», комбинированный список с сортировкой и кнопку; по нажатию кнопки выбранный элемент комбинированного списка должен помещаться в статический текст.
19. Создать в клиентской области окна флажок (checkbox), который может находиться в трех состояниях, и строку состояния. При смене состояния флажка его текущее состояние необходимо описать в строке состояния.
20. Создать в клиентской области окна флажок (checkbox) и статический текст. Обработать смену состояний флажка следующим образом: если флажок находится в выделенном состоянии, то статический текст видим; если в невыделенном – то невидим. Начальное состояние: флажок выделен, статический текст видим.
21. По нажатию на кнопку выбирать из двух текстовых полей координаты конца отрезка и рисовать линию от левого верхнего угла клиентской области окна до полученных координат. Кнопку и текстовые поля создавать программно, расположив их в клиентской области окна.
22. Программно создать в клиентской области окна строку состояния и список. Обработать смену выбранного элемента списка таким образом, чтобы выбранный элемент отражался в строке состояния.
23. Программно создать в клиентской области окна текстовое поле и список. Обработать смену выбранного элемента списка таким образом, чтобы выбранный элемент отражался в текстовом поле.
24. Создать в клиентской области окна элемент управления «текстовое поле», комбинированный список с сортировкой и кнопку; по нажатию кнопки текст из текстового поля должен добавляться в комбинированный список.
|
|||
|