Лабораторная работа №6 icon

Лабораторная работа №6



НазваниеЛабораторная работа №6
Дата конвертации05.09.2012
Размер88.75 Kb.
ТипЛабораторная работа
1. /лаб 1.doc
2. /лаб 10.doc
3. /лаб 2.doc
4. /лаб 3.doc
5. /лаб 4.doc
6. /лаб 5.doc
7. /лаб 6.doc
8. /лаб 7.doc
9. /лаб 8.doc
10. /лаб 9.doc
Лабораторная работа №1
Лабораторная работа №10
Лабораторная работа №2
Лабораторная работа №3
Лабораторная работа №4
Лабораторная работа №5
Лабораторная работа №6
Лабораторная работа №7
Лабораторная работа №8
Лабораторная работа №9

Лабораторная работа №6


Управление размером рисунка. Прокрутка изображения."


Задание


  1. Ввести в меню команду настройки размеров для вновь создаваемых рисунков. Вызываемая диалоговая панель должна содержать выбор размера (c использованием radio-кнопок) из трех фиксированных вариантов (320x240, 640x480, 800x600), флажок выбора ручного ввода размера, поля ввода ширины и высоты рисунка в пикселях. Выбор размера не должен изменять размеры уже существующих рисунков, а должен определять размеры рисунков, создаваемых в дальнейшем командой «Новый».

  2. Рисунок должен отображаться и записываться в файл с учетом своего размера. Фон области формы, находящийся вне рисунка, должен отображаться светло-серым цветом. Если при завершении рисования фигуры будет происходить выход контура фигуры за границы рисунка, соответствующая фигура не должна добавляться к рисунку.

  3. Дополнить окна документов полосами прокрутки, обеспечить корректное отображение рисунков при скроллинге.


Краткая справка.


Управляющие элементы RadioButton традиционно представлены в виде надписи с точкой, расположенной от них с левой стороны, которые могут быть либо выбраны, либо не выбраны. RadioButton рекомендуется использовать, когда необходимо предоставить пользователю возможность выбора из нескольких взаимоисключающих вариантов. Для того чтобы сгруппировать элементы RadioButton в единую логическую единицу, следует использовать управляющий элемент GroupBox.
Расположив в форме сначала групповое окно, а затем необходимые элементы RadioButton внутри границ этого группового окна, можно добиться того, что все переключатели будут изменять свое состояние таким образом, что только один из них может быть выбран в рамках данной группы. Если не разместить их внутри группового окна, то это приведет к тому, что только один из них cможет быть выбран в каждый конкретный момент времени во всей форме.

Управляющий элемент CheckBox традиционно представляет собой надпись с маленьким окошком с флажком, который располагается слева от нее. Этот управляющий элемент следует использовать, когда необходимо предоставить пользователю возможность выбора одной или нескольких возможностей.

Свойства управляющего элемента RadioButton




Appearance

Управляющий элемент RadioButton может выводиться в виде

надписи с круглым флажком выбора, расположенным слева,

в середине или справа от нее, либо в виде стандартной кнопки.

В последнем случае кнопка выглядит утопленной, если

она выбрана, и выпуклой — если нет.


AutoCheck


Когда данному свойству присвоено значение true, то в момент

щелчка мышью на переключателе выводится флажок выбора.


CheckAlign

Позволяет изменять местоположение переключателя.

Он может располагаться справа, по центру или слева.

Определяет состояние управляющего элемента.

Checked

Его значение

равно true, если у данного управляющего элемента установлен

флажок выбора, и false в противном случае.



События управляющего элемента RadioButton



Checkchanged

Сообщение о наступлении этого события отправляется в тот момент, когда флажок выбора RadioButton изменяет свое состояние. Если в рамках формы или группового окна существует более одного управляющего элемента RadioButton, то сообщение об этом событии будет отправляться дважды: сначала управляющему элементу, который до этого был выбран и теперь таковым не является, а затем управляющему элементу, который выбран в настоящий момент.


Сlick

Сообщение о наступлении этого события отправляется всякий раз, когда происходит щелчок мышью на RadioButton. Это не то же самое, что событие, связанное с изменением состояния управляющего элемента, поскольку щелчок мышью на каком-либо управляющем элементе два или более раз подряд приводит только к однократному изменению свойства "выбрано" — и то только в том случае, если оно не было выбрано до этого.




Свойства управляющего элемента CheckBox

Свойства и события данного управляющего элемента очень напоминают свойства и события RadioButton, однако они обладают двумя новыми свойствами:


CheckState

В отличие от RadioButton, CheckBox может находиться

в одном из трех состояний:

• Checked (выбрано)

• Indeterminate (не определено),

• Unchecked (не выбрано)

Если состояние окна выбора описывается как indeterminate,

то окно выбора, соответствующее данной надписи, обычно

изображается серым цветом, что означает, что текущее значение

в окне выбора либо недопустимо, либо лишено смысла при данных

обстоятельствах

ThreeState

Когда это свойство имеет значение false, то нет возможности

изменять состояние CheckBox на indeterminate. Хотя при этом

по-прежнему можно устанавливать данное значение

программным путем.




Управляющий элемент Textbox

Управляющие элементы типа Textbox (текстовое окно) предназначены для ввода пользователем текста. Класс TextBox обеспечивает ряд возможностей по работе с текстом в текстовом окне, такие как выделение текста, вырезание и вставка текста, а также набор событий.

Свойства управляющего элемента Textbox



Causesvalidation

Когда элемент, у которого данному свойству присвоено

значение true, должен оказаться в фокусе, то генерируются

два события — Validating и Validated. Их можно

обработать с целью проверки допустимости данных,

введенных в управляющий элемент, который выходит

из фокуса.

CharacterCasing

Позволяет определить, производится ли изменение регистра

вводимых символов. Это свойство может иметь одно из трех

значений:

• Lower — весь вводимый в окно текст переводится

в нижний регистр.

• Normal — текст остается без изменений.

• Upper — весь вводимый в окно текст переводится

В верхний регистр

MaxLength

Значение, которое определяет максимальную длину текста

в Textbox, выраженную в символах. Если длина ограничена

только объемом имеющейся в наличии памяти, данному

свойству следует присвоить значение, равное нулю.


Multiline

Указывает, допускает ли данный управляющий элемент

наличие нескольких строк. Многострочный элемент позволяет

одновременный вывод нескольких строк текста.

PasswordChar

Указывает, что текст, находящийся в однострочном окне,

должен заменяться на "секретные" символы. Если свойство

Multiline имеет значение, равное true, то это свойство

игнорируется.

Readonly


Логическое значение, указывающее на то, что текст может

использоваться в режиме "только чтение".

ScrollBars

Позволяет указать, что состоящее из нескольких строк окно

должно выводиться с линейками прокрутки.

SelectedText

Определяет выбранный в окне текст.

SelectionLength

Определяет число символов в выбранном тексте.

SelectionStart

Определяет начало выделенного текста в текстовом окне.

SelectionLength

Определяет число символов в выбранном тексте.



События управляющего злемента Textbox

Управляющий элемент Textbox поддерживает обработку событий, позволяющих организовать проверку допустимости вводимого текстаю. Если требуется гарантированно не допускать ввода неверных символов или если нужно, чтобы вводимое в текстовое окно значение находилось в допустимом диапазоне, то необходимо указать пользователю этого управляющего элемента, является ли введенное значение допустимым или нет.

Управляющий элемент Textbox предоставляет следующие события :


Enter

GotFocus

Leave

Validating

Validated

LostFocus

Первые шесть событий, приведенных в таблице наступают в той последовательности, в которой они перечислены. Они известны под названием "событий, связанных с фокусом" и генерируются при любом изменении фокуса управляющего элемента за исключением двух случаев. События Validating и validated происходят только в том случае, если свойство CausesValidation имеет значение true.

KeyDown

KeyPress

KeyUp

Группа событий, связанных с клавишами.

Они позволяют отслеживать и изменять то, что в вводится в управляющий элемент.

События KeyDown и КеyUр получают код, соответствующий нажатой клавише. Это позволяет определять нажатие специальных клавиш, например Shift или Ctrl, в том числе, в комбинации с другими клавишами.

KeyPress позволяет получать символ, соответствующий нажатой клавише. Это событие оказывается полезным, если требуется задать множество допустимых символов, например, разрешить ввод только численных значений.

Change

Наступает при любых изменениях текста в текстовом окне независимо от их характера.



Полосы прокрутки (scroll bars).

Класс ScrollableControl, производным от которого является класс Form, предназначен для обеспечения поддержки вертикальной и горизонтальной полос прокрутки.

Наиболее часто используемыми свойствами этого класса являются AutoScroll и AutoScrollMinSize. Эти свойства обеспечивают автоматическое появление полос прокрутки в тех ситуациях, когда ее содержимое не умещается в границах формы (например, если пользователь уменьшил ее размер). Свойство AutoScrollMinSize позволяет задать минимальный размер формы, при котором всегда будут появляться полосы прокрутки. Выглядеть это может так:

// Этот код помещается в конструктор класса или метод InitializeComponent().

tnis.AutoScroll = true;

this.AutoScrollMinSize = new System.Drawing.Size (300, 300);

После этого класс ScrollableControl обеспечит появление полос прокрутки и обработку событий прокрутки.


Рекомендации

Пункт 1.

В диалоговой панели выбора размера рисунка следует использовать следующие элементы панели «Toolbox»: Button, RadioButton, GroupBox, CheckBox, TextBox. Кнопке «OK» следует задать значение «OK» свойства DialogResult, кнопке «Cancel» - значение «Cancel». Следует добавить в класс этой диалоговой панели public поле типа Size, которое будет сохранять заданный размер рисунка, и обработчик щелчка по кнопке “OK”, который должен считывать из элементов панели заданный размер (с учётом состояния флажка ручного ввода размера) и сохранять его в указанной переменной.


Реализовать обработчик события CheckedChanged (изменение состояния флажка ручного ввода размера), в котором через свойство Enabled элементов GroupBox и TextBox следует управлять доступностью этих элементов для ввода и выбора в соответствии с состоянием флажка.


Обработчик соответствующей команды меню в классе Form1 должен создавать диалоговую панель выбора размера и считывать после её закрытия результат выбора пользователя.


Пункт 2.

При создании новых окон рисунков следует задавать для них размер рисунка и учитывать его при выполнении операций с рисунком. Для этого надо добавить соответствующее поле к классу формы рисунка и реализовать конструктор этого класса, получающий в качестве аргумента размер рисунка. Этот конструктор должен вызываться из обработчика команды меню, создающей новое окно.

Для цвета нерабочей области окна рисунка (фон формы) в свойствах формы следует задать серый цвет (например, ControlDark).

Обработчик события Paint должен перед рисованием фигур рисунка заполнять рабочую область окна рисунка белым цветом (метод FillRectangle).

Обработчик отпускания кнопки мыши должен проверять условие попадания создаваемой фигуры в область рисунка и добавлять к рисунку только те фигуры, которые соответствуют этому условию.

При сохранении рисунка в файлах и чтении из файлов операции сериализации/десериализации массива фигур должны дополниться соответствующими действиями с размером рисунка.

Пункт 3.

Для обеспечения обработки скроллинга следует установить в true свойство формы AutoScroll и задавать в конструкторе формы значение свойству AutoScrollMinSize, которое должно соответствовать размеру рабочей области окна рисунка.

При создании объектов фигур и их рисовании теперь следует учитывать, что в окнах со скроллингом координаты мыши, передаваемые обработчикам событий, и координаты, передаваемые методам класса Graphics, отсчитываются от левого верхнего угла видимой области окна, а не от левого верхнего угла рисунка, отображаемого в окне. Следовательно, координаты, отсчитываемые от верхнего левого угла полного рисунка, должны формироваться из оконных координат в результате их модификации на величину смещения, задаваемого полосами прокрутки. Эта величина доступна через свойство формы AutoScrollPosition, хранящее отрицательные значения ненулевых смещений видимой области рисунка по осям X и Y. Соответствующий параметр, позволяющий учесть смещение при скроллинге, потребуется добавить к методам рисования фигур для их корректного отображения в окнах со скроллингом.




Похожие:

Лабораторная работа №6 iconДокументы
1. /OOP/Лабораторная работа ь00-Введение.doc
2. /OOP/Лабораторная...

Лабораторная работа №6 iconЛабораторная работа: создание мини-презентации «Памятники Кремля»
Лабораторная работа проводится в компьютерном классе, с подключением к сети Internet
Лабораторная работа №6 iconДокументы
1. /Lab1/Лабораторная работа 1.doc
2. /Lab2/Лабораторная...

Лабораторная работа №6 iconИ я забуду Покажи мне и я запомню, Дай мне действовать самому и я научусь. Китайская мудрость Тема: Лабораторная работа
Тема: «Лабораторная работа «Измерение работы и мощности тока в электрической лампочке»
Лабораторная работа №6 iconДокументы
1. /Nash/lab1/Лабораторная работа ь1.doc
2. /Nash/lab10/Лабораторная...

Лабораторная работа №6 iconЛабораторная работа №2 «Система безопасности Windows xp»
Лабораторная работа №2 «Система безопасности Windows xp» Цель работы: Изучить систему безопасности Windows xp
Лабораторная работа №6 iconЛабораторная работа «Работа в Windows c помощью основного меню. Использование технологии ole»
Запишите размер папки, выраженный в Мб (мегабайтах) в текстовый редактор блокнот
Лабораторная работа №6 iconЛабораторная работа «Работа с текстовыми фрагментами без помощи мыши»
Скопируйте последнее слово получившегося текста и вставьте его в начало текста один раз
Лабораторная работа №6 iconДокументы
1. /Базовые задачи на обработку массива.doc
2. /ЗадачиНаЛиниВетвление.doc
Лабораторная работа №6 iconДокументы
1. /laba/Лабораторная работа ь1.doc
2. /laba/Лабораторная...

Лабораторная работа №6 iconДокументы
1. /механизация/~$б работа ь4.doc
2. /механизация/~$бораторная...

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов