Главная страница
Навигация по странице:

  • 10.20. Регулирование палитры компонентов. Часть 1 218 Часть II. Приложения Windows Рис 10.21. Регулирование палитры компонентов. Часть Помещение компонента в форму

  • File | Close Solution

  • File | Open | Project/Solution

  • File | Close

  • Solution Explorer : откройте контекстное меню h- файла формы ив нем увидите команды View Code , View Designer

  • Solution Explorer

  • Form1.h[Design] и Form2.h[Design]

  • Борис Пахомов Санкт Петербург бхв петербург 2013 удк 004. 4 Ббк 32. 973. 26018. 2 П


    Скачать 17.38 Mb.
    НазваниеБорис Пахомов Санкт Петербург бхв петербург 2013 удк 004. 4 Ббк 32. 973. 26018. 2 П
    АнкорMS Visual C.pdf
    Дата04.08.2018
    Размер17.38 Mb.
    Формат файлаpdf
    Имя файлаMS Visual C.pdf
    ТипДокументы
    #22453
    страница18 из 37
    1   ...   14   15   16   17   18   19   20   21   ...   37
    ,
    , +, +,
    , Компоненты среды программирования Среда программирования VC++ содержит множество компонентов, обеспечивающих решение различного рода практических задач формы, панели, кнопки, метки, меню, компонент для выхода в Интернет, контейнеры для изображений и текста и т. д. Но главным среди всех компонентов, базовым компонентом является компонент "Форма" (Form), в который помещаются остальные компоненты, определяющие функциональность создаваемого приложения. Рассмотрим основной компонент среды программирования — класс Класс Класс
    Form определяет элемент будущего приложения, называемый формой. Это контейнер, в который помещаются остальные элементы приложения, определяющие впоследствии всю функциональность данного приложения. Естественно, что для работы с формой должен существовать некий инструмент. В этой среде он существует и называется дизайнером форм. Дизайнер форм

    Пустая форма, которая появляется на экране после загрузки среды VC++, или когда мы создаем новое приложение, фактически представляет собой окно дизайнера форм. Дизайнер позволяет работать с формой помещать компоненты в форму, удалять и выделять компоненты, перетаскивать их с одного места на другое, закрывать форму и т. д. Компоненты выбираются из палитры компонентов, расположенной на вкладке
    Toolbox, и появляются в ней при загрузке формы. Многозначные компоненты разбиты на функциональные группы, которые могут сворачиваться и разворачиваться, если щелкать на треугольнике слева от названия группы (рис. 10.19). Содержимое палитры компонентов регулируется списком, который открывается после выполнения команды Tools | Choose Toolbox Items рис. 10.20 и 10.21). Каждая строка списка снабжена слева квадратным окошком, в котором можно щелкать мышью. При этом если окошко было пустым (это означает, что компонент, указанный в данной строке, не подключен к палитре компонентов, то после щелчка в нем появляется галочка (это означает, что компонент, указанный в данной строке, будет подключен к палитре компонентов, а если окошко содержало галочку, она исчезнет. Это означает, что компонент, указанный в данной строке, будет выведен из палитры компонентов. Поставляемый продукт содержит минимальное количество компонентов. Остальные вы должны сами подключить к палитре.
    Глава
    10. Продолжение изучения среды Visual C++
    217 Рис 10.19. Палитра компонентов
    Рис.
    10.20. Регулирование палитры компонентов. Часть 1

    218 Часть II. Приложения Windows Рис 10.21. Регулирование палитры компонентов. Часть Помещение компонента в форму

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

    Кроме помещения компонента в форму, при конструировании приложения требуется совершать и другие действия, которые сейчас рассмотрим. Закрыть все проекты данного решения можно с помощью команд меню File |
    Close Solution, открыть — с помощью File | Recent Projects and Solutions. Вот- крывшемся списке надо выбрать последний проект, с которым выработали. Можно открыть все проекты и другим путем выполнить команду File | Open |
    Project/Solution и далее в появившемся диалоговом окне выбрать папку, где
    Глава
    10. Продолжение изучения среды Visual C++
    219 хранится файл проекта. Файл имеет вид
    , где после пиктограммы идет имя проекта. Если необходимо закрыть проект не целиком, а только одну его форму, то это можно сделать, выполнив команду File | Close, а снова открыть — командами
    File | Recent Files, после чего из выпадающего списка выбрать строку с именем нужной формы (например, Form1.h). Выделить несколько компонентов (например, если требуется их групповое перемещение в другое место формы) можно следующими способами при нажатой клавише щелкать мышью на требуемых компонентах заключить эти компоненты в так называемый прямоугольник выделения (надо установить курсор мыши левее и выше самого верхнего левого компонента формы, нажать на левую кнопку и, не отпуская ее, потянуть мышь вправо и вниз. Появится прямоугольник, который будет охватывать выделенные объекты. После того как вы отпустите кнопку мыши, можно, установив курсор мыши на любой из отмеченных объектов, потянуть за него в нужном направлении и вся отмеченная ранее группа переместится вместе с этим объектом. Снять групповое выделение компонентов можно щелчком мыши вне выделенного пространства. Можно изменять форму выделенного компонента на более мелком уровне, чем растяжка заточки выделения. Для этого при нажатой клавише надо нажимать нужную клавишу со стрелкой. Таким же способом с помощью стрелок можно мелкими долями изменять местоположение отмеченного компонента, но при нажатой клавише . Контекстное меню формы

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

    View Cod — открывает файл модуля формы (имя формы, те. переводит работу из режима дизайна формы в режим работы с кодом модуля формы. Этого, кстати, можно добиться, дважды щелкнув на форме.

    Lock Controls — блокирует любой компонент, имеющий данное свойство в том числе и форму. У компонента в его верхнем левом углу появляется пиктограмма замка, после чего компонент закрыт для разного рода действий с ним. Например, форму уже нельзя растягивать, а компоненты, помещенные в нее, обретают это же свойство при их активизации у них тоже появляется пиктограмма замка. Такие компоненты теперь уже не перемещаются в форме и не растягиваются/сжимаются те. они заблокированы. Снять блокировку можно повторным выполнением этой же опции.

    220 Часть II. Приложения Windows Form

    Properties — эта опция открывает окно Properties свойств объекта (в данном случае — формы. Если вы вдруг по каким- то причинам "потеряли" на экране дизайнер формы или код ее модуля, их легко восстановить с помощью информации из окна
    Solution Explorer
    : откройте контекстное меню h
    - файла формы ив нем увидите команды
    View Code, View
    Designer. Добавление новых форм к проекту

    Алгоритмы решения некоторых задач требуют, чтобы компоненты, обеспечивающие решение таких задач, размещались в разных формах, и чтобы эти формы вызывались в процессе выполнения проекта в определенном порядке. Например, возьмем задачу управления кадрами. Желательно, чтобы все справочные данные по кадрам были размещены отдельно от аналитических форм — так удобнее поддерживать справочную информацию (этим вопросом должен заниматься отдельный работник, которому нечего делать в разделе аналитических форм. Да и работнику, связанному с анализом кадров, легче решать свои проблемы, не заботясь о поддержке в активном состоянии нормативно-справочной информации. Как добавить к проекту новую форму Этот вопрос нами рассматривался выше. Как выбрать, какую форму запускать первой Когда вы добавляете форму к проекту, она не станет по умолчанию сама выводиться в момент исполнения приложения — ее надо вызвать. Форма, которая появляется в проекте, когда мы выбираем режим New Project, станет запускаться первой по умолчанию, те. всегда считается главной, стартовой. А как быть, если мы имеем несколько форм и хотим одну из них (необязательно главную) запустить первой, а потом уже запускать в заданном порядке остальные формы В версии С+ 2005 такая возможность была чтобы установить приоритет запуска форм, надо было Открыть контекстное меню проекта в окне Solution Explorer и выполнить опцию Properties. Откроется диалоговое окно Property Pages. В этом окне слева надо выбрать папку General ив окне справа из выпадающего меню Startup Object выбрать стартовую форму. Однако в версиях 2008 Express Edition и 2010 beta2, 2011 beta автор не обнаружил такой возможности. Поэтому приходится считать, что главной все-таки будет первая форма проекта, из которой следует организовать вызов остальных форм. Но есть выход в Solution Explorer дважды щелкните на строке Source Files |
    Имя_проекта.cpp. Откроется файл стартовой формы. В нем найдите строку
    Application::Run(gcnew Form1());
    , которая запускает форму 1, ив ней замените
    Form1
    на
    Form2
    , если хотите, чтобы стартовой была форма 2:
    Application::Run(gcnew
    Form2());
    . Перекомпилируйте проект и запускайте на выполнение. Увидите, что первой запустилась форма 2.
    Глава
    10. Продолжение изучения среды Visual C++
    221 Организация работы с множеством форм
    Итак, форма, с которой был связан проект при его создании, имеет статус главной. Это означает, что она первой загружается и выполняется после того, как проект откомпилирован и запущенна выполнение. Номы увидели, как можно стартовой формой сделать любую другую. Если в проекте много форм, то из главной формы можно организовать вызов на выполнение остальных форма можно из каждой формы вызвать любую другую. Эта задача решается с помощью обработчиков кнопок вызова конкретных форм. При разработке проекта на экране всегда находится какая-то одна форма. Если нам требуется поместить другую форму на экран из уже добавленных ранее в проект, то следует просто переключиться на другую вкладку, отражающую данную форму в режиме дизайна. Например, если у нас две формы и вкладки, соответственно, помечены как Form1.h[Design] и Form2.h[Design], то для вызова на экран й формы надо щелкнуть на вкладке Form2.h[Design]. Вызов формы на выполнение
    Форма вызывается на выполнение в двух режимах модальном и немодальном обычном. Вызов на выполнение осуществляется двумя разными командами. В модальном режиме — методом формы
    ShowDialog()
    , в обычном — методом формы. Детальное описание обоих режимов вызова будет пояснено далее в разд. Некоторые методы формы" этой главы.
    Cвойства формы
    Эти свойства могут встречаться у многих компонентов, которые будут изучаться далее, поэтому впоследствии будем говорить о них кратко. Перечень свойств формы, отображенных в окне Properties, приведен на рис. 10.22. Рассмотрим некоторые свойства формы.

    ApplicationSettings
    — установки приложения. Эта возможность типа Windows Form позволяет легче создавать, хранить и поддерживать приложения и различные преференции пользователя. С установками, о которых речь пойдет чуть позже, вы сможете не только хранить данные приложения (такие как строки соединения с базой данных, но и специфические данные пользователя, в частности его преференции (специфические установки параметров. Вы сможете создавать новые установки, читать и писать их, привязывать к свойствам ваших форм и определять их до загрузки и сохранения приложения. Фактически аппарат установок приложения — это аппарат параметризации этого приложения, что всегда дает возможность перестройки его без пере- компиляции. Так что же такое эти установки Ваши приложения Windows Form почти всегда содержат такие данные, которые нежелательно хранить в самом приложении, т. к. их изменение влечет за собой перекомпиляцию. Если ваше приложение

    222 Часть II. Приложения Windows эксплуатируется не вами, а другим пользователем, то перекомпиляция из-за ка- кой-то мелочи может повлечь за собой его неработоспособность. Ведь пользователь не знает вашей программы и не сможет ее правильно изменить (подстроить, даже если у него имеется код программы, что весьма сомнительно (обычно разработчики поставляют пользователю только исполняемые модули без кода. Рис 10.22. Перечень свойств формы, отображенных в окне
    Properties Следовательно, такую настроечную информацию желательно хранить в отдельном файле, который подключается к приложению. Если смотреть на этот процесс сточки зрения работы приложения в рамках системы "клиент-сервер", то аппарат установок дает возможность хранить на компьютере клиента как установки клиента, таки установки приложения. В частности, вы можете определить установки (те. значения заданных величин, влияющих на ход выполнения про- граммы-приложения) для данного свойства, указывая его имя, тип данного и контекст (это создается для приложения или для пользователя. Такие установки не изменяются программой и читаются ею в память автоматически в момент исполнения программы-приложения. В большинстве случаев программные установки имеют статус "только для чтения, это программная информация и нет необходимости ее изме-
    Глава
    10. Продолжение изучения среды Visual C++
    223
    нять в самой программе. И наоборот, пользовательские установки могут и читаться, и быть безопасно измененными в момент исполнения программы. Установки приложения сохраняются в двух файлах в файле app.config
    (app — это имя модуля приложения, который создается вовремя работы дизайнера форм, те. вовремя проектирования приложения. Формирование этого файла происходит в момент создания первой установки приложения. Другой файл — user.config (этот файл формируется в момент исполнения приложения когда пользователь изменяет значение любой пользовательской установки. Установки определяются дизайнером форм заданием свойства
    ApplicationSettings в окне Properties формы. Когда вы определяете установки, среда программирования автоматически создает специальный управляемый пользователем класс- оболочку, в котором каждая установка связывается со свойством класса. Как осуществить установки с помощью дизайнера форм В следующем порядке действий вы выполняете конфигурацию установок и связей, используя редактор свойства для Windows Form. Когда вы используете этот редактор, то среда программирования генерирует класс-оболочку, происходящий от класса
    ApplicationSettingsBase
    , и определяет все ваши установки в качестве свойств класса-оболочки. Чтобы создать новые установки приложения, выберите форму или компонент, чьи свойства хотите связать с новыми установками. Далее требуется. Добавить в проект файла затем переименовать его в app.settings. Раскрыть свойство если слева от него стоит знаки щелкнуть мышью на кнопке с многоточием на подчиненном свойстве
    PropertyBindings
    . Откроется диалоговое окно, показанное на рис. 10.23. Рис 10.23. Диалоговое окно для задания установок приложения

    224 Часть II. Приложения Windows Form
    2. В диалоговом окне надо открыть выпадающее меню для того свойства (кнопка с галочкой справа, которое требуется связать с объектом (для нашего рисунка это
    Font
    ). В открывшемся списке выполняем команду New. В результате откроется окно New Application Setting, в котором и следует задать установки, те. значения указанных в нем элементов. Во-первых, надо задать имя установки, ее значение по умолчанию, ее предназначение (для приложения или для пользователя. Если установка предназначена для приложения, то это свойство станет глобальным для всех пользователей приложения и не сможет изменяться в режиме исполнения. Если же контекст выбран пользователь, то свойство будет иметь статус read/write
    (его можно не только читать, но и записывать, те. изменять. В нашем случае сделана установка шрифта по умолчанию (рис. 10.24).
    3. Щелкнуть на кнопке О последовательно в обоих диалоговых окнах. Рис 10.24. Установка шрифта по умолчанию
    Пример задания установки для свойства
    Font
    (шрифт) показан на рис. 10.25.

    AccessibleDescription
    — в этом свойстве отражается (или задается) текст описания компонента для приложений, имеющих к нему доступ. Служит для доступа клиентских приложений. Это свойство необходимо для случаев, когда описание объекта неочевидно (кнопка с надписью OK не нуждается в дополнительной информации, но кнопка, на которой изображен, например, рисунок верблюда, требует пояснений. Свойства
    AccessibleName и
    AccessibleRole для такой кнопки опишут ее назначение, а рассматриваемое свойство
    AccessibleDescription выразит саму идею этой кнопки. При этом
    AccessibleName задает имя компонента для приложений, имеющих к нему доступа (выбирается из выпадающего списка)
    Глава
    10. Продолжение изучения среды Visual C++
    225 содержит тип элемента пользовательского интерфейса (
    ComboBox
    ,
    DropList и т. п. Если конкретно это свойство не может быть определено, то оно устанавливается в значение Рис 10.25. Пример задания установки для свойства
    Font

    AllowDrop
    — свойство определяет возможность вывода у себя данных, когда пользователь перемещает их над этим компонентом. Например, если компонент А имеет такую возможность, то когда вы начнете перемещать мышью некоторое изображение над ним, это изображение выведется на этом компоненте, когда будет отпущена кнопка мыши (изображение "капнет" на поверхность компонента, например, формы.

    AutoScaleMode
    — это свойство задает так называемое автоматическое масштабирование. Автоматическое масштабирование дает возможность форме и расположенным в ней компонентам, сконструированным на одном компьютере с некоторым разрешением вывода тес фиксированным значением числа точек изображения, которое станет выводиться на единицу поверхности вывода) или с определенным шрифтом, выводиться, соответственно, на другом компьютере с другим разрешением или шрифтом. Например, элементы пользовательского интерфейса, содержащие текст, такие как заголовочные полосы, меню и др, полностью зависят от используемого шрифта и могут быть искажены. Это же касается и экранного разрешения. Большинство дисплеев имеет разрешающую способность в 96 точек на дюйм. Но уже существуют дисплеи си более высокими значениями DPI количество точек на один дюйм, и поэтому здесь также возможно искажение экранных изображений на разных компьютерах, если не отрегулировать масштабирование. Значение свойства выбирается из выпадающего списка, в котором определяется автоматический режим масштабирования для данного компонента.

    226 Часть II. Приложения Windows Например, если выбрать значение
    Font
    (шрифт, то автоматическое изменение шрифта будет полезным тогда, когда вы хотите, чтобы форма или компонент растягивались или сокращались в соответствии с размерами шрифта в операционной системе и использовались в случаях, когда их абсолютные размеры не играют роли. Если выбрано значение
    DPI
    , то эта величина полезна, если вы хотите изменять размеры формы или компонента относительно экрана. Например, вы выводите на экран диаграмму или другую графику и хотите, чтобы это изображение всегда занимало определенный процент экрана. Если выбрать значение свойства, равное
    Inherit
    , то другой компьютер станет наследовать шрифт и разрешение базового компьютера.

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

    AutoScrollMargin
    — свойство задает возможность автоскроллинга компонента, нос учетом отступов по ширине и высоте от внутреннего компонента, вызывающего скроллинг. Например, вы хотите, чтобы полосы прокрутки появлялись не тогда, когда при изменении формы ее нижний край достигает края самого нижнего ее компонента, а, например, не доходя (по высоте) 300 пикселов. Тогда подчиненное свойство надо установить назначение. Реакция формы на задание этого свойства показана на рис. 10.26 — на правом рисунке отступ до изображения без полос прокрутки больше, чем на левом рисунке. Рис 10.26. Результат задания свойства
    AutoScrollMargin
    Глава
    10. Продолжение изучения среды Visual C++
    227

    AutoScrollMinSize
    — свойство задает минимальный размер (в пикселах) ширины и высоты полос прокрутки.

    AutoSizeMode
    — свойство задает способ автоматического изменения формой своих размеров. Значение выбирается из выпадающего списка. На рис. 10.27 показаны варианты изменения формы в зависимости от совместных значений данного свойства и свойства После запуска на выполнение форма не растягивается и не сжимается
    После запуска на выполнение форма может только растягиваться
    AutoSize=false
    AutoSizeMode=GrowOnly
    После запуска на выполнение форма может сжиматься и растягиваться
    AutoSize=false
    AutoSizeMode=GrowAndShrink
    После запуска на выполнение форма не растягивается и не сжимается
    1   ...   14   15   16   17   18   19   20   21   ...   37


    написать администратору сайта