Хелпикс

Главная

Контакты

Случайная статья





Лабораторная работа №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. Создать в клиентской области окна элемент управления «текстовое поле», комбинированный список с сортировкой и кнопку; по нажатию кнопки текст из текстового поля должен добавляться в комбинированный список.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.