Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Паппас К., Мюррей У. - Visual C++ 6. Руководство разработчика - 2000

.pdf
Скачиваний:
288
Добавлен:
13.08.2013
Размер:
4.96 Mб
Скачать

Delete

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

Edit команду Undo.

Select All

Команда SelectAll используется для выделения всего содержимого активного окна с целью последующего вырезания, копирования или удаления.

Find...

Модуль поиска, запускаемый командой Find..., работает примерно так же, как и аналогичное средство поиска в большинстве текстовых редакторов. Поскольку языки C/C++ чувствительны к регистру символов, опции диалогового окна Findпозволят вам организовать поиск как с учетом, так и без учета регистра, а также поиск слова целиком. Можно задать и направление поиска - вверх или вниз от текущего положения курсора.

Одной из удобных особенностей команды Find... является возможность применения регулярных выражений. В табл. 2.2 приведены метасимволы, которые можно для этой цели вводить в поле Findwhat диалогового окна Find.

Таблица 2.2 Метасимволы используемые с командой Find

Метасимволы

Назначение

 

 

 

Заменяет любое количество символов, в том числе нулевое

*

Пример: Data*1

 

Результат поиска: Data1, Dataln1, DataOut1

 

 

.

Заменяет любой отдельный символ

Пример: Data.

 

Результат поиска: Data1l и Data2, но не Dataln1

 

 

 

Поиск ключевых слов только в начале строк

^

Пример: Ado

 

Результат поиска: все строки, начинающиеся с "do"

 

 

+

Заменяет любое число символов, начиная с единицы

Пример: +value

 

Результат поиска: i_value, fvalue, lng_value

 

 

$

Поиск ключевых слов только в конце строк

Пример: end;$

 

Результат поиска: все строки, заканчивающиеся на "end;"

 

 

 

Поиск значений, соответствующих указанному диапазону

 

Пример: Data[A...Z]

[ ]

Результат поиска: DataA, но не Datal

 

Пример: Data[1248]

 

Результат поиска: Data2, но не Data3

Отменяет специальное назначение следующего за ним метасимвола

\Пример: 100\$ Результат поиска: "100$" (в отличие от самого шаблона 100$, который означает поиск образца "100" в конце строки)

 

 

Поиск ключевых слов, начинающихся с комбинации символов,

 

 

\{\}

заключенных в фигурные скобки

 

 

Пример: \{no\}*_answer

 

 

 

 

 

 

Результат поиска: answer, no_answer, nono_answer, nonono_answer

 

 

 

 

 

 

Find in Files...

 

 

При выборе команды Find in Files... вы получаете в свое распоряжение все средства команды Find... и возможность проводить поиск ключевых слов сразу в нескольких файлах. Вы можете спросить: "С какой стати я стану искать что-нибудь сразу в нескольких файлах?" Чтобы ответить на этот вопрос, вспомним, что проект, написанный на C/C++, состоит из множества взаимосвязанных файлов. Предположим, в процессе программирования вы поймете, что какую-то часто используемую в приложении конструкцию лучше заменить более компактной. В таком случае, выполнив команду Find in Files..., вы будете уверены, что произвели замену во

21

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

Replace...

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

Хорошенько подумайте, прежде чем щелкнуть на кнопке ReplaceAll, поскольку результат выполнения этой команды может оказаться разрушительным для вашей программы. Помните, что вы можете отменить результаты операции замены, если сразу выберете команду Undo.

GoTo...

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

Bookmarks...

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

Breakpoints...

Данная команда позволяет устанавливать точки прерывания в различных местах программы.

ListMembers

Команда ListMembersотображает список доступных переменных-членов или функций выбранного класса либо структуры.

TypeInfo

Данная команда отображает окно подсказки, содержащее описания всех идентификаторов.

ParameterInfo

Эта команда отображает полное описание (включая список параметров) функции, имя которой расположено слева от курсора. Параметр, выделенный полужирным шрифтом, соответствует тому параметру, который вы должны ввести в данный момент.

CompleteWord

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

Меню View

Меню View(рис. 2.4) содержит команды, позволяющие настроить внешний вид рабочего пространства.

22

Рис. 2.4

ClassWizard...

Мастер ClassWizard облегчит выполнение таких повторяющихся задач, как создание новых классов и обработчиков сообщений, переопределение виртуальных функций MFC и сбор данных от элементов управления диалоговых окон. Одно очень важное замечание: ClassWizardработает только с приложениями, использующими библиотеку MFC , что отличает его от таких средств, как ClassViewи WizardBar, работающих с MFC , ATLи вашими собственными производными классами. К тому же ClassView не распознает классы, если они не зарегистрированы в файле базы данных ClassView(файл с расширением CLW). С помощью мастера ClassWizardможно выполнять следующие действия:

добавлять к новому классу методы и свойства;

порождать новые классы от базовых классов MFC ;

создавать новые обработчики сообщений;

объявлять переменные-члены, которые автоматически инициализируют, собирают и проверяют данные, вводимые в диалоговых окнах или формах;

удалять существующие обработчики сообщений;

определять, какие сообщения уже связаны с обработчиками, и просматривать их код;

работать с существующими классами и библиотеками типов.

Resource Symbols... и Resource Includes...

Вы очень быстро убедитесь в том, что по мере увеличения и усложнения кода вашего приложения стремительно возрастает и число задействованных в проекте ресурсов, все труднее становится отслеживать постоянно растущее число идентификаторов ресурсов, разбросанных по многочисленным файлам проекта. Команды ResourceSymbols... и ResourceIncludes... существенно облегчат процесс контроля за ресурсами. Перечислим операции, которые можно выполнить с их помощью:

изменение имен и значений символических идентификаторов, которые в данный момент не используются;

определение новых идентификаторов;

удаление ненужных идентификаторов;

быстрая загрузка соответствующих редактор ресурсов;

23

просмотр описаний существующих идентификаторов и определение ресурсов, связанных с каждым идентификатором.

FullScreen

Подобно большинству программистов, вы в процессе программирования наверняка хотите видеть на экране как можно больше кода. В этом вам поможет команда FullScreen, при выборе которой окно редактирования будет развернуто на весь экран.

Workspace

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

Output

По команде Output открывается окно Output, в котором отображается ход выполнения таких процессов, как компиляция и компоновка программы. В это окно выводятся также все предупреждающие сообщения и сообщения об ошибках, генерируемые компилятором и компоновщиком.

Debug Windows

В подменю Debug Windows содержатся команды вызова различных окон отладчика, включая

Watch, Call Stack, Memory, Variables, Registers и Disassembly.

Refresh

Команда Refresh предназначена для обновления вида текущего окна - аналогично тому, как с помощью клавиши [F5] мы обновляем внешний вид окна программы Explorer (Проводник) в Windows.

Properties

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

Меню Insert

Меню Insert(рис. 2.5) содержит команды, позволяющие вставлять в проект новые файлы, ресурсы, объекты и т.д.

Рис 2.5.

NewClass...

При выборе данной команды открывается диалоговое окно NewClass, в котором можно задать имя нового класса (таковым может быть класс библиотек MFC и ATL или класс общего назначения) и указать его базовый класс. В результате создается файл заголовков и файл реализации нового класса.

24

Resource...

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

ResourceCopy...

VisualC++ дает возможность создать копию ресурса при изменении языка его описания. Язык ресурса выбирается в списке Language окна InsertResourceCopy. В поле Condition можно задать символический идентификатор, наличие которого в данной конфигурации проекта является условием для подключения ресурса. Язык ресурса отображается в окне Workspace после имени ресурса.

File As Text...

Данная команда применяется для добавления в проект текста указанного файла. Перед выбором команды необходимо открыть окно редактирования и установить курсор в месте ввода текста.

New ATL Object...

Данная команда позволяет добавить в существующий проект ATL-класс. ATL-объекты представляют собой шаблонные классы C++, которые реализуют основные средства СОМ,

включая интерфейсы IUnknown, IClassFactory, IClassFactory2 и IDispatch, поддержку двунаправленных и отключаемых интерфейсов, интерфейсов перечисления (lEnumXXXX), точек подключения, элементов управления ActiveX и многое другое.

Меню Project

Команды меню Project(рис. 2.6) позволяют управлять открытыми проектами.

Рис 2.6.

SetActiveProject

В данном подменю отображается список загруженных проектов, из которых можно выбрать активный.

AddtoProject

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

Dependencies

Если ваш большой проект разбит на несколько подпроектов, то для отображения иерархических связей между ними следует использовать команду Dependencies.

Settings...

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

25

ExportMakefile...

С помощью этой команды можно сохранить в файле всю информацию, необходимую для построения проекта. Файл, созданный с применением команды ExportMakefile..., хранит все установки, которые вы сделали в среде VisualC++.

Insert Project Into Workspace...

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

Меню Build

В меню Build(рис. 2.7) содержатся всевозможные команды, предназначенные для генерации кода приложения, отладки и запуска созданной вами программы.

Рис 2.7.

Compile

Выбор этой команды приводит к компиляции содержимого текущего окна.

Biuld

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

Прежде чем выбрать команду Build, вам следует принять решение, следует ли в конечный файл включать отладочную информацию (конфигурация Debug) или же исключить эти данные из файла (конфигурация Release). Чтобы установить тот или иной режим, необходимо в меню Build выбрать.команду Set Active Configuration.... Если вы закончили работу над программой и убедились в ее работоспособности, отладочную информацию из выходного файла целесообразно исключить — в таком случае он станет значительно компактнее.

Сообщения об обнаруживаемых в процессе компиляции и компоновки ошибках будут появляться в окне Output.

RebuildAll

Различие между командами Buildи RebuildAll состоит в том, что последняя не обращает внимания на дату и время создания файлов и компилирует все файлы проекта.

26

Если при выполнении команды RebuildAll будут обнаружены синтаксические ошибки, как фатальные, так и потенциально опасные, то предупреждения и сообщения о них появятся в окне Output.

BatchBuild...

Эта команда аналогична команде Build, но с ее помощью можно обработать сразу несколько конфигураций одного проекта.

Clean

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

StartDebug

Данное подменю содержит команды, предназначенные для выполнение программы в режиме отладки: до курсора или до заданной точки останова.

Debugger Remote Connection...

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

Execute

Если компиляция прошла успешно, выберите команду Execute, и построенная программа будет запущена.

Set Active Configuration...

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

Configurations...

Команда Configurations... позволяет добавлять или удалять конфигурации текущего проекта. Например, если вы начали работу только с конфигурацией Debug(отладочная версия программы), то теперь можете добавить конфигурацию Release(финальная версия программы).

Profile...

Данная команда представлена только в профессиональной и корпоративной версиях VisualC++. Но чтобы ею можно было воспользоваться, необходимо при создании проекта установить опцию, задающую подключение профилировщика (опция Enable profiling категории General вкладки Link диалогового окна Project Settings). Профилировщик используется для анализа работы программы во время ее выполнения. В процессе профилирования в окне Outputотображается информация, на основании которой вы можете выяснить, какие части вашего программного кода работают эффективно, а какие не выполняются или требуют больших временных затрат.

Меню Tools

Меню Tools(рис. 2.8) содержит команды вызова вспомогательных утилит, программирования макросов и настройки среды VisualC++.

27

Рис. 2.8.

SourceBrowser...

Этой командой можно воспользоваться при необходимости просмотреть информацию об исходных файлах. Вы можете поручить компилятору создавать по вспомогательному SBRфайлу для каждого объектного (OBJ) файла, который будет встречаться в процессе компиляции. Когда вы создаете или обновляете основной информационный BSC-файл, все SBR-файлы проекта должны быть представлены на диске. Для того чтобы создать SBR-файл, содержащий всю возможную информацию, установите опцию Generate browse info вкатегории Listing Files вкладки C/C++ диалогового окна Project Settings. Если из файла необходимо исключить информацию о локальных переменных, задайте там же опцию Exclude local variables from browse info.

Close Source Browser File

Данная команда закрывает текущий SBR-файл.

ErrorLookup

Утилиту ErrorLookup используют при необходимости получить текст сообщений, связанных с кодами системных ошибок. Введите код ошибки в поле Value, и в поле ErrorMessage автоматически отобразится связанное с ним сообщение.

ActiveX Control Test Container

Данная утилита предназначена для тестирования элементов управления ActiveX. Она позволяет менять свойства элемента управления, вызывать его методы, моделировать возникновение требуемых событий и многое другое.

OLE/COM Object Viewer

Эта утилита отображает сведения обо всех объектах ActiveXи OLE, установленных на вашем компьютере, а также о поддерживаемых ими интерфейсах. Она также позволяет редактировать реестр и просматривать библиотеки типов.

Spy++

Утилита Spy++ выводит информацию о выполняющихся системных процессах и потоках, существующих окнах и поступающих оконных сообщениях. Указанная утилита также предоставляет набор инструментов, облегчающих поиск нужных процессов, потоков и окон.

MFC Tracer

Дополнительные возможности для отладки оконных приложений, построенных на основе MFC , предоставляет утилита MFC Tracer. Эта утилита отображает в окне отладки сообщения о выполнении операций, связанных с использованием библиотеки MFC , а также предупреждения об ошибках, если при выполнении приложения происходят какие-либо сбои.

VisualComponentManager

Данная утилита предназначена для ведения базы данных готовых программных компонентов.

28

RegisterControl

Элементы управления OLE, как и другие OLE-серверы, могут использоваться различными приложениями, поддерживающими технологию OLE. Но для этого необходимо зарегистрировать библиотеку типов и класс элемента управления, что как раз и выполняет команда RegisterControl.

Customize...

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

Options...

Данная команда открывает окно Options, в котором задаются различные параметры среды

VisualC++.

Macro... / Record... / Play...

Эти команды используются для создания и воспроизведения макросов на VBScript. Макросы представляют собой небольшие процедуры, содержащие команды VBScript и не принимающие параметров. Макросы позволяют значительно упростить и ускорить работу в среде VisualC++. Например, вы можете записать в виде макроса некоторую часто выполняемую последовательность команд, в результате чего для осуществления той же самой задачи вам достаточно будет ввести простую комбинацию клавиш или нажать единственную кнопку панели инструментов.

Меню Window

Все команды меню Window(рис. 2.9), за исключением команды DockingView, в принципе соответствуют стандартному набору команд данного меню во всех приложениях Windows.

Рис 2.9.

NewWindow

Данная команда создает новое окно редактирования для текущего проекта.

Split

Команда Split позволяет разбить окно редактирования на несколько частей.

29

DockingView

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

Close

Данная команда закрывает активное окно. Если содержимое окна не было предварительно сохранено, то будет выдано предупреждающее сообщение.

CloseAll

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

Next

Посредством команды Next, относящейся к меню Window, можно переключаться между открытыми окнами.

Previous

Эта команда аналогична команде Next, но в отличие от последней осуществляет переходы между окнами в обратном порядке.

Cascade

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

TileHorizontally

Эта команда располагает все открытые окна одно над другим. Такой вид отображения удобен для сравнения исходного и модифицированного текста программ.

TileVertically

Команда Тilе Vertically располагает все открытые окна рядом друг с другом. Такой вид отображения удобен при необходимости произвести сравнение иерархических структур.

Список открытых окон

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

Меню Help

Меню Help(рис. 2.10) содержит стандартные для приложений Windowsкоманды Contents, Searchи Index, а также некоторые дополнительные команды.

30

Соседние файлы в предмете Программирование на C++