Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчеты по Курсовой Работе / Работа с текстовой информацией 8-78-1 Суглов С.В..docx
Скачиваний:
36
Добавлен:
12.03.2015
Размер:
335.13 Кб
Скачать

Результаты работы программы

Работа программы представлена на рисунках снизу

Рисунок 1 – Окно программы

Рисунок 2 – Диалог открытия файла

Рисунок 3 – Выделенный текст

Рисунок 4 – Выбранное меню копировать

Рисунок 5 – После выбора меню пункта меню «Вставить»

Рисунок 6 – После выбора пункт меню «О программе»

Заключение

Таким образом, в данной курсовой работе были изучены и реализованы основные принципы работы с текстом в среде Windows. За основу алгоритма работы программы была выбрана классическая структура оконной программы Windows. Работа программы была продемонстрирована на примере текстового файла.

Приложение

Описание APIфункций:

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

Синтаксис

HMODULE GetModuleHandle(

LPCTSTR lpModuleName);

Параметры

lpModuleName

Указатель на символьную строку с нулем в конце, которая содержит имя модули (или .dll или .exe файл). Если расширение имени файла опускается, в конец добавляется заданное по умолчанию библиотечное расширение .dll. Символьная строка имени файла может включать в себя конечный символ точки (.), который указывает, что имя модуля не имеет расширения. Строка не должна определять путь. Когда определяется путь, убедитесь, что используются обратные слэши (\), а не прямые слэши (/). Имя сравнивается (независимо от ситуации) с именами модулей в текущий момент отображаемыми в адресном пространстве вызывающего процесса.

Если этот параметр - NULL, GetModuleHandle возвращает дескриптор файла, используемый, чтобы создать вызывающий процесс (.exe файл).

Возвращаемые значения

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

Если функция завершается ошибкой, возвращаемое значение - NULL.

  1. InitCommonControls регистрирует и инициализирует классы окна стандартного органа управления.

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

Синтаксис:

int WINAPI WinMain

HINSTANCE hInstance, // дескриптор текущего экземпляра окна

HINSTANCE hPrevInstance,// дескриптор предыдущего экземпляра окна

LPSTR lpCmdLine, // указатель на командную строку

int nCmdShow // показывает состояние окна

  1. ExitProcess функция заканчивает работу процесса и всех его потоков.

Синтаксис

VOID ExitProcess

UINT uExitCode // код выхода для всех потоков

  1. LoadIcon загружает указанный ресурс значка из исполняемого (.exe) файла, связанного с экземпляром приложения.

Параметры

hInstance дескриптор экземпляра модуля, содержащий исполняемый файл, значок которого будет загружен. Этот параметр должен быть NULL, когда загружается стандартный значок.

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

  1. Функция RegisterClassEx регистрирует класс окна для последующего использования при вызове функции CreateWindow или CreateWindowEx.

Параметры

Lpwcx указатель на структуру WNDCLASSEX. Вы должны заполнить структуру соответствующими атрибутами класса перед передачей её в функцию.

  1. GetSystemMetricsвозвращает системную метрику и системные параметры настройки конфигурации. Системная метрика – это размеры элементов отображения Windows. Все размеры указываются в пикселях.

Параметры

nIndex определяет системный показатель или настройку конфигурации которая будет возвращена. Все значения с префиксом SM_CX определяют ширину элемента, с префиксом SM_CY – высоту.

  1. CreateWindowEx создает перекрывающее, выпрыгивающее или дочернее окно с расширенным стилем; иначе, эта функция идентична функции CreateWindow.

Параметры

dwExStyle Определяет расширенный стиль создаваемого окна.

lpClassName Указатель на строку с символом нуля в конце или атом класса, созданный предшествующим вызовом функции RegisterClass или RegisterClassEx. Атом должен быть в младшем слове параметра lpClassName; старшее слово должно быть нулевое. Если lpClassName является строкой, параметр устанавливает имя класса окна. Имя класса может быть любым именем, зарегистрированным функцией RegisterClass или RegisterClassEx, при условии, что модуль, который регистрирует класс, является тем же модулем, который создает окно. Имя класса может также быть любым из предопределенных системных имен классов.

lpWindowName Указатель на строку, с символом нуля в конце, которая устанавливает имя окна. Если стиль окна определяет область заголовка, заголовок окна, указанный параметром lpWindowName отображается в заголовке. Когда функция CreateWindow используется, чтобы создать органы управления, типа кнопок, переключателей и статические элементов управления, параметр

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

lpWindowName, чтобы установить имя пиктограммы или идентификатора. Чтобы задать идентификатор, используйте синтаксис "#num".

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

x Определяет начальную горизонтальную позицию окна. Для перекрывающего или выскакивающего окна параметр x - начальная x-координата левого верхнего угла окна, в экранных координатах устройства. Для дочернего окна x - x-координата левого верхнего угла окна относительно левого верхнего угла рабочей области родительского окна. Если x установлен как CW_USEDEFAULT, система выбирает заданную по умолчанию позицию для левого верхнего угла окна и игнорирует y параметр. Стиль CW_USEDEFAULT допустим только для перекрывающих окон; если он определен для выскакивающего или дочернего окна параметры x и y устанавливаются в нуль.

y Определяет начальную вертикальную позицию окна. Для перекрывающего или выскакивающего окна, параметр y - начальная y-координата левого верхнего угла окна, в экранных координатах устройства. Для дочернего окна, y - начальная y-координата левого верхнего угла дочернего окна относительно левого верхнего угла рабочей области родительского окна. Для окна со списком, y - начальная y-координата левого верхнего угла рабочей области окна со списком относительно левого верхнего угла рабочей области родительского окна. Если перекрывающее окно создано с установленным битом стиля WS_VISIBLE, а параметр x установлен как CW_USEDEFAULT, система игнорирует параметр y.

nWidth Определяет ширину окна в единицах измерения устройства. Для перекрывающих окон nWidth - ширина окна в экранной системе координат или CW_USEDEFAULT. Если nWidth - CW_USEDEFAULT, Система выбирает заданную по умолчанию ширину и высоту для окна; заданная по умолчанию ширина простирается от начальных x-координат до правого края экрана; заданная по умолчанию высота простирается от начальной y-координаты до верхней части области значка. Стиль CW_USEDEFAULT допустим только для перекрывающих окон; если CW_USEDEFAULT определен для выскакивающего или дочернего окна, параметры nWidth и nHeight устанавливаются в нуль.

nHeight Определяет высоту окна в единицах измерения устройства. Для перекрывающих окон, nHeight - высота окна в экранной системе координат. Если параметр nWidth установлен как CW_USEDEFAULT, Windows игнорирует nHeight.

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

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

hInstance Дескриптор экземпляра модуля, который будет связан с окном.

lpParam Указатель на значение, переданное окну через структуру CREATESTRUCT, вызванную параметром lParam сообщения WM_CREATE. Если прикладная программа вызвала функцию CreateWindow, чтобы создать пользовательское окно MDI, lpParam должен указывать на структуру CLIENTCREATESTRUCT.

  1. LoadMenu загружает заданный ресурс меню из исполняемого (.exe) файла программы, связанного с экземпляром приложения.

Параметры

hInstance

[in] Дескриптор модуля, содержащего ресурс меню, который будет загружен.

lpMenuName

[in] Указатель на символьную строку с нулем в конце, которая содержит имя ресурса меню. Или же, этот параметр может состоять из идентификатора ресурса в младшем слове и нулей в старшем слове.

  1. SetMenu назначает новое меню для заданного окна.

Параметры

hWnd

[in] Дескриптор окна, к которому назначается меню.

hMenu

[in] Дескриптор нового меню. Если этот параметр имеет значение ПУСТО (NULL), текущее меню окна удаляется.

  1. GetAppPath Возвращает путь к директории с файлами приложения.

  2. GetCL возвращает путь к нашему экзешнику плюс все параметры.

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

Параметры

hWnd

[in] Дескриптор окна.

nCmdShow

[in] Определяет, как окно должно быть показано. Этот параметр первоначально игнорируется, когда прикладная программа вызывает ShowWindow, если программа, которая запустила приложение программу, предоставляет структуру STARTUPINFO. Иначе, при первом вызове функции ShowWindow, это значение должно быть значением, полученным функцией WinMain в ее параметре nCmdShow.

  1. Функция UpdateWindow обновляет рабочую область заданного окна, отправляя сообщение WM_PAINT окну, если регион обновления окна не пуст. Функция отправляет сообщение WM_PAINT непосредственно оконной процедуре указанного окна, обходя очередь приложения.

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

  3. Функция TranslateMessage переводит сообщения виртуальных клавиш в символьные сообщения. Символьные сообщения помещаются в очереди сообщений вызывающего потока для прочтения в следующий раз, когда поток вызовет функцию GetMessage или PeekMessage.

  4. Функция DispatchMessage распределяет сообщение оконной процедуре. Обычно она используется, чтобы доставить сообщение, извлеченное функцией GetMessage.

  5. Функция SendMessage отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение.

Параметры

hWnd

[in] Дескриптор окна, оконная процедура которого примет сообщение. Если этот параметр - HWND_BROADCAST, сообщение отправляется всем окнам верхнего уровня в системе, включая заблокированные или невидимые, не имеющие владельца, перекрывающие и выскакивающие окна; но сообщение не отправляется дочерним окнам.

Msg

[in] Определяет сообщение, которое будет отправлено.

wParam

[in] Определяет дополнительную конкретизирующую сообщение информацию.

lParam

[in] Определяет дополнительную конкретизирующую сообщение информацию.

  1. Функция SetWindowText изменяет текст заголовка заданного окна (если таковой имеется). Если определяемое окно - орган управления, то изменяется его текст. Однако SetWindowText не может изменить текст органа управления в другом приложении.

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

Параметры hWnd Идентифицирует окно, которое примет ввод информации с клавиатуры. Если этот параметр - ПУСТО (NULL), нажатия клавиши игнорируются.

  1. Функция SetWindowLong заменяет атрибуты указанного окна. Функция также устанавливает и 32-разрядное (long) значение при заданном смещении в дополнительную память окна.

Параметры

hWnd

[in] Дескриптор окна и, косвенно, класс в которому принадлежит окно.

nIndex

[in] Определяет отсчитываемое от нуля смещение устанавливаемого значения. Допустимые значения находятся в диапазоне от нуля до число байтов дополнительной памяти окна, минус размер целого числа. Чтобы установить любое другое значение, задайте одну из ниже перечисленных величин.

dwNewLong

[in] Устанавливает заменяемое значение.

  1. Функция GetClientRect возвращает координаты клиентской области окна. Клиентские координаты определяют верхний левый и правый нижний углы клиентской области. Поскольку клиентские координаты относительны левому углу клиентской области окна, то координаты верхнего левого угла является (0, 0).

  2. Функция MoveWindow изменяет позицию и габариты определяемого окна. Для окна верхнего уровня, позиция и габариты отсчитываются относительно левого верхнего угла экрана. Для дочернего окна, они - относительно левого верхнего угла рабочей области родительского окна.

Параметры

hWnd

[in] Дескриптор окна.

X

[in] Устанавливает новую позицию левой стороны окна.

Y

[in] Устанавливает новую позицию верхней части окна.

nWidth

[in] Устанавливает новую ширину окна.

nHeight

[in] Устанавливает новую высоту окна.

bRepaint

[in] Определяет, должно ли окно быть перерисовано. Если этот параметр - ИСТИНА (TRUE), окно принимает сообщение WM_PAINT. Если параметр - ЛОЖЬ(FALSE), никакого перекрашивания какого-либо сорта не происходит. Это применяется к рабочей области, нерабочей области (включая область заголовка и линейки прокрутки) и любой части родительского окна, раскрытого в результате перемещения дочернего окна.

  1. Функция PostQuitMessage указывает системе, что поток сделал запрос на то, чтобы завершить свою работу (выйти). Это обычно используется в ответ на сообщение WM_DESTROY.

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

  3. Функция GetStockObject извлекает дескриптор одного из предопределенных (стандартных) перьев, кистей, шрифтов или палитр.

  4. Функция GetFileSize извлекает размер указанного файла. Размер файла, который может быть сообщен при помощи этой функции ограничивается значением двойного слова (DWORD).

  5. Функция CloseHandle закрывает дескриптор открытого объекта.

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

  7. SysAllocStringByteLen Принимает на входе строку ANSI и возвращает содержащую ее BSTR. Не выполняет никаких преобразований ANSI-Unicode.

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

  9. SysFreeString осовбождает строку созданную SysAllocStringByteLen

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

  11. MemCopy копирует байты между буферами.

  12. Dwtoa перевод из строки в число

  13. Функция lstrcat добавляет в конец одной строки другую строку.

  14. Функция CreateFile создает или открывает каталог, физический диск, том, буфер консоли (CONIN$ или CONOUT$), устройство на магнитной ленте, коммуникационный ресурс, почтовый слот или именованный канал. Функция возвращает дескриптор, который может быть использован для доступа к объекту.

  15. ShellAbout выводит стандартное диалоговое окно Windows "О программе".