Функция TestDlgProc в файле MAPDLGRT.C |
||||||||||||||||||||||||
См. \local-sources\chap08\08-16.txt |
||||||||||||||||||||||||
MessageBeep • Windows 98 • Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция MessageBeep воспроизводит звуковой файл через звуковую плату, если в компьютере установлены соответствующие аппаратные средства; в ином случае она воспроизводит звук через динамик компьютера. Имя каждого звукового файла обозначено отдельным входом в разделе [sounds] системного реестра. Применение функции MessageBeep обычно связано с выдачей сообщений об ошибках и предупреждающих сообщений. Эту функцию удобно использовать для выдачи пользователю сообщения о завершении продолжительной фоновой задачи, например передачи большого файла. |
|||||||||||||||||||||||
Синтаксис |
BOOL MessageBeep( UINT uType ) |
|||||||||||||||||||||||
Параметры uType |
UINT. Тип звука, в соответствии с обозначением входа в разделе [sounds] системного реестра. Этот параметр может иметь одно из значений, перс-численных в табл. 8.5. |
|||||||||||||||||||||||
Таблица 8.5. ЗначенияпараметраuType функцииMessageBeep |
||||||||||||||||||||||||
Значение |
Звук |
|||||||||||||||||||||||
OxFFFFFFFF I-1) |
Стандартный звуковой сигнал, воспроизводимый через динамик компьютера |
|||||||||||||||||||||||
MBJCONASTERISK |
SystemAsterisk |
|||||||||||||||||||||||
MBJCONEXCLAMATION |
SystemExclamation |
|||||||||||||||||||||||
MBJCONHAND |
SystemHand |
|||||||||||||||||||||||
MBJCONQUESTION |
SystemQuestion |
|||||||||||||||||||||||
МВ_ОК |
SystemDefault |
|||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
MessageBox |
|||||||||||||||||||||||
Пример |
См. пример для функции MessageBox. |
|||||||||||||||||||||||
MessageBox • Windows 98 • Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция MessageBox позволяет создавать, отображать и выполнять различные действия с окном сообщения. Окно сообщения содержит сообщение, определяемое приложением, и заголовок, а также любое сочетание определенных пиктограмм и кнопок. Функция MessageBox чаще всего используется для сообщений об ошибках и предупреждающих сообщений, но может быть также использована в качестве метки-заполнителя при разработке программы. Например, окна сообщений можно размещать вместо пунктов меню, которые еще не были реализованы, и т.д. |
|||||||||||||||||||||||
Синтаксис |
int MessageBox( HWND hwndOwner, LPCTSTR IpszText, LPCTSTR IpszTitle, UINT uStyle ) |
|||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||
hwndOwner |
HWND. Дескриптор родительского окна. Если этот параметр равен NULL, окно сообщения не имеет окна-владельца. |
|||||||||||||||||||||||
IpszText |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую сообщение, которое должно быть отображено. |
|||||||||||||||||||||||
IpszTitle |
LPCTSTR. Указатель на строку с нулевым символом в конце, используемую в качестве заголовка диалогового окна. Если этот параметр равен NULL, применяется заданный по умолчанию заголовок Error. |
|||||||||||||||||||||||
uStyle |
UINT. Определяет содержимое и правило поведения диалогового окна. Этот параметр может представлять собой сочетание значений, перечисленных в табл. 8.6. |
|||||||||||||||||||||||
Таблица 8.6. ЗначенияпараметраuStyle функцииMessageBox |
||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||
MB_ABORTRETRYIGNORE |
Окно сообщения содержит три кнопки: Abort, Retry и Ignore. |
|||||||||||||||||||||||
MB_APPLMODAL |
Пользователь должен ответить на сообщение в окне сообщения, прежде чем продолжить работу в окне, указанном параметром hwndOwner. Однако пользователь может переходить в окна других приложений и работать в этих окнах. |
|||||||||||||||||||||||
MB_CANCELTRYCONTINUE |
Окно сообщения содержит кнопки Cancel, Try Again и Continue. Рекомендуется использовать этот флажок вместо MB_ABORTRETRYIGNORE. |
|||||||||||||||||||||||
MB_DEFAULT_DESKTOP_ONLY |
(Windows 2000) Рабочий стол, принимающий ввод, должен быть рабочим столом, заданным по умолчанию; в ином случае функция потерпит неудачу. Заданным по умолчанию является рабочий стол, в котором пользователь выполняет приложение после входа в систему. |
|||||||||||||||||||||||
MB_DEFBUTTON1 |
Первая кнопка — кнопка, применяемая по умолчанию. Применяемой по умолчанию является кнопка, которая будет активизирована, если пользователь нажмет клавишу Enter. |
|||||||||||||||||||||||
MB_DEFBUTTON2 |
Вторая кнопка — кнопка, применяемая по умолчанию. |
|||||||||||||||||||||||
MB_DEFBUTTON3 |
Третья кнопка — кнопка, применяемая по умолчанию.. |
|||||||||||||||||||||||
MB_DEFBUTTON4 |
Четвертая кнопка — кнопка, применяемая по умолчанию. |
|||||||||||||||||||||||
MB_HELP |
Добавляет кнопку Help к окну сообщения. При выборе кнопки Help или нажатии клавиши F1 вырабатывается событие вызова справки. |
|||||||||||||||||||||||
MB ICONASTERISK |
То же, что и MBJCONINFORMATION. |
|||||||||||||||||||||||
MBJCONERROR |
То же, что и MBJCONSTOP. |
|||||||||||||||||||||||
MBJCONEXCLAMATION |
В окне сообщения появляется пиктограмма восклицательного знака. ; |
|||||||||||||||||||||||
MBJCONHAND |
То же, что и MBJCONSTOP. |
|||||||||||||||||||||||
MBJCONINFORMATION |
В окне сообщения появляется пиктограмма, которая выглядит как буква нижнего регистра "i" в круге. |
|||||||||||||||||||||||
MBJCONQUESTION |
В окне сообщения появляется пиктограмма вопросительного знака. |
|||||||||||||||||||||||
MBJCONSTOP |
В окне сообщения появляется пиктограмма знака "стоп". |
|||||||||||||||||||||||
MBJCONWARNING |
То же, что и MBJCONEXCLAMATION. |
|||||||||||||||||||||||
MB_OK |
Окно сообщения содержит одну кнопку: ОК. |
|||||||||||||||||||||||
MB_OKCANCEL |
Окно сообщения содержит две кнопки: ОК и Cancel. |
|||||||||||||||||||||||
MB_RETRYCANCEL |
Окно сообщения содержит две кнопки: Retry и Cancel. |
|||||||||||||||||||||||
MB RIGHT |
Текст выровнен вправо. |
|||||||||||||||||||||||
MB_RTLREADING |
Отображает сообщение и текст заголовка справа налево в еврейской и арабской системах письменности. |
|||||||||||||||||||||||
MB_SERVICE_NOTIFICATION |
(Windows 2000) Вызывающая программа представляет собой службу, извещающую пользователя о событии. Функция отображает окно сообщения на текущем активном рабочем |
|||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||
столе, даже если на компьютере не зарегистрирован ни один пользователь. Если этот флажок установлен, параметр /jwndOwner должен иметь значение NULL, чтобы окно сообщения могло появиться на любом рабочем столе. |
||||||||||||||||||||||||
MB_SETFOREGROUND |
Окно сообщения становится окном переднего плана. В своих внутренних операциях система Windows вызывает для создания окна сообщения функцию SetForegroundWindow. |
|||||||||||||||||||||||
MB_SYSTEMMODAL |
Выполнение всех приложений приостановлено до тех пор, пока пользователь не ответит на сообщение в окне сообщения. Если в приложении не указан флажок MB_ICONHAND, окно сообщения станет модальным только после его создания. Системно-модальные сообщения должны применяться только для серьезных общесистемных сообщений. |
|||||||||||||||||||||||
MBJTASKMODAL |
То же, что и MB_APPLMODAL, за исключением того, что все окна верхнего уровня, принадлежащие к текущей задаче, будут запрещены, если параметр hwndOlvner равен NULL. Этот флажок применяется, когда вызывающее приложение или библиотека не имеют доступного дескриптора окна, но при этом должна быть исключена возможность ввода данных в других окнах текущего приложения и не приостановлена работа других приложений. |
|||||||||||||||||||||||
MB_TOPMOST |
Окно сообщения создано со стилем окна WS_EX_TOPMOST. |
|||||||||||||||||||||||
MB_YESNO |
Окно сообщения содержит две кнопки: Yes и No |
|||||||||||||||||||||||
MB_YESNOCANCEL |
Окно сообщения содержит три кнопки: Yes, No и Cancel. |
|||||||||||||||||||||||
Возвращаемое значение |
int. Возвращаемое значение — 0, если недостаточно памяти для создания окна сообщения. В ином случае возвращаемое значение представляет собой одно из значений, перечисленных в табл. 8.7. |
|||||||||||||||||||||||
Таблица 8.7. Значения, возвращаемыефункциейMessageBox |
||||||||||||||||||||||||
Значение |
Описание |
|||||||||||||||||||||||
IDABORT |
Была нажата кнопка Abort. |
|||||||||||||||||||||||
IDCANCEL |
Была нажата кнопка Cancel. |
|||||||||||||||||||||||
IDCONTINUE |
Была нажата кнопка Continue. |
|||||||||||||||||||||||
IDIGNORE |
Была нажата кнопка Ignore. |
|||||||||||||||||||||||
IDNO |
Была нажата кнопка No. |
|||||||||||||||||||||||
IDOK |
Была нажата кнопка ОК. |
|||||||||||||||||||||||
IDRETRY |
Была нажата кнопка Retry. |
|||||||||||||||||||||||
IDTRYAGAIN |
Была нажата кнопка Try Again. |
|||||||||||||||||||||||
IDYES |
Была нажата кнопка Yes. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
MessageBoxEx, MessageBoxIndlrect, MessageBeep, DialogBox |
|||||||||||||||||||||||
Пример |
В следующем примере отображается окно сообщения при выборе пункта меню Test!. В нем также проверяется, нажата ли кнопка Yes в окне сооб- |
|||||||||||||||||||||||
щения. Перед отображением сообщения воспроизводится звук восклицания с помощью функции MessageBeep. LRESULT CALLBACK WndProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM IParam ) { switch ( uMsg ) { case ИМ COMMAND : switch ( LOWORD( wParam ) ) { case IDM TEST : MessageBeep ( MB ICONEXCLAMATION ); if ( MessageBox( hWnd, "Hello!", NULL, MB YESNO | MB ICONEXCLAMATION ) = IDYES ) { / / Нажата кнопка YES . } break; |
||||||||||||||||||||||||
MessageBoxEx • Windows 98 • Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция MessageBoxEx аналогична функции MessageBox, за исключением того, что в ней предусмотрен дополнительный параметр, который указывает набор языковых ресурсов, предназначенный для использования в надписях на определенных кнопках. Обратите внимание, что в каждом локализованном выпуске Windows обычно содержатся ресурсы только для ограниченного набора языков. Поэтому в этой функции можно использовать только ограниченный набор значений с учетом того, какие региональные установки предусмотрены в системе. , |
|||||||||||||||||||||||
Синтаксис |
int MessageBoxEx( HWND hwndOwner, LPCTSTR IpszText, LPCTSTR IpszCaption, UINT uStyle, WORD wLanguagelD ) |
|||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||
hwndOwner |
HWND. Дескриптор родительского окна. Если этот параметр равен NULL, окно сообщения не имеет окна-владельца. |
|||||||||||||||||||||||
IpszText |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую сообщение, которое должно быть отображено. |
|||||||||||||||||||||||
IpszCaption |
LPCTSTR. Указатель на строку с нулевым символом в конце, используемую в качестве заголовка диалогового окна. Если этот параметр равен NULL, применяется заданный по умолчанию заголовок Error. |
|||||||||||||||||||||||
uStyle |
UINT. Определяет содержимое и поведение диалогового окна. Этот параметр может представлять собой сочетание значений, перечисленных в табл. 8.6. |
|||||||||||||||||||||||
wLanguagelD |
WORD. Указывает язык, на котором должны быть отображены надписи на определенных кнопках. Это значение должно быть представлено в форме, возвращаемой макрокомандой MAKELANGID. Список допустимых языков и диалектов перечислен при описании функции EnumResourceLanguages в главе 7. |
|||||||||||||||||||||||
Возвращаемое значение |
int. Возвращаемое значение — 0, если недостаточно памяти для создания окна сообщения. В ином случае возвращаемое значение представляет собой одно из значений, перечисленных в табл. 8.7. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
MessageBox, MessageBoxIndirect |
|||||||||||||||||||||||
Пример |
Следующий пример аналогичен приведенному при описании функции MessageBox, за исключением того, что окно сообщения отображается с использованием мексиканского диалекта испанского языка. |
|||||||||||||||||||||||
Си. \local~sources\chap08\08-17. txt |
||||||||||||||||||||||||
MessaqeBoxIndirect • Windows 98 • Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция MessageBoxIndirect позволяет создавать и отображать окно сообщения, которое определено путем передачи в качестве параметра некоторой структуры, а также выполнять с ними действия. Эта структура позволяет в приложении настраивать не только те характеристики диалогового окна, для настройки которых может применяться функция MessageBox, но и дополнительные характеристики. |
|||||||||||||||||||||||
Синтаксис |
int MessageBoxIndirect( LPMSGBOXPARAMS IpMsgBoxParams ) |
|||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||
IpMsgBoxParams, |
LPMSGBOXPARAMS. Указатель на структуру MSGBOXPARAMS, которая содержит информацию, используемую для отображения и применения окна сообщения. См. приведенное ниже определение структуры MSGBOXPARAMS. |
|||||||||||||||||||||||
Возвращаемое значение |
int. Возвращаемое значение — 0, если недостаточно памяти для создания окна сообщения; в ином случае возвращаемое значение представляет собой одно из значений, перечисленных в табл. 8.7. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
MessageBox, MessageBoxEx |
|||||||||||||||||||||||
Определение MSGBOXPARAMS typedef struct { UINT cbSize; HWND hwndOwner ; HINSTANCE hlnstance ; LPCTSTR IpszText; LPCTSTR IpszCaption; DWORD dwStyle; LPCTSTR Ipszlcon; DWORD PTR dwContextHelpId ; MSGBOXCALLBACK Ipf nMsgBoxCallback ; DWORD dwLanguageld; } MSGBOXPARAMS , *LPMSGBOXPARAMS ; |
||||||||||||||||||||||||
Члены |
||||||||||||||||||||||||
cbSize |
UINT. Размер структуры в байтах. Этот параметр должен быть инициализирован перед его использованием в функции MessageBoxIndirect. |
|||||||||||||||||||||||
hwndOwner |
HWND. Окно-владелец окна сообщения. Этот параметр может быть установлен в NULL. |
|||||||||||||||||||||||
hlnstance |
HINSTANCE. Экземпляр, содержащий ресурс пиктограммы, обозначенный членом Ipszlcon, и ресурс строки, обозначенный членами IpszText и IpszCaption. |
|||||||||||||||||||||||
IpszText |
LPCTSTR. Указатель на строку с нулевым символом в конце или идентификатор ресурса строки, содержащей сообщение, которое должно быть отображено. |
|||||||||||||||||||||||
IpszCaption |
LPCTSTR. Указатель на строку с нулевым символом в конце или идентификатор ресурса строки, содержащей заголовок окна сообщения. Если этот член равен NULL, применяется заданный по умолчанию заголовок Error. |
|||||||||||||||||||||||
dwStyle |
DWORD. Набор двоичных флажков, которые определяют содержимое и поведение диалогового окна. Этот член может представлять собой сочетание флажков, описанных в табл. 8.6. |
|||||||||||||||||||||||
Ipszlcon |
LPCTSTR. Обозначает ресурс пиктограммы. Этот параметр может представлять собой строку с нулевым символом в конце или целочисленный идентификатор ресурса, переданный макрокоманде MAKEINTRESOURCE. Для использования одной из пиктограмм, определенных в Windows, необходимо установить значение hlnstanceв NULL и указать в качестве Ipszlconодно из значений, перечисленных в описании функции Loadlcon. , |
|||||||||||||||||||||||
dwContextHelpId |
DWORD_PTR. Идентификатор контекстной справки, который должен быть связан с окном сообщения. Это значение передается в структуре HELPINFO, которую окно сообщения посылает окну-владельцу или функции обратного вызова. Определение структуры HELPINFO приведено в главе 28. |
|||||||||||||||||||||||
IpfhMsgBoxCallba |
ickMSGBOXCALLBACK. Указатель на функцию обратного вызова, которая обрабатывает события вызова справки для окна сообщения. См. приведенное ниже определение функции обратного вызова. Если этот член устанавливается в NULL, окно сообщения посылает сообщение WM_HELP окну-владельцу, когда происходит вызов справки. |
|||||||||||||||||||||||
dwLanguageld |
DWORD. Указывает язык, на котором должны быть отображены надписи на определенных кнопках. Это значение должно быть в форме, возвращенной макрокомандой MAKELANGID. Список допустимых языков и диалектов перечислен в описании функции EmunResourceLanguages в главе 7. |
|||||||||||||||||||||||
Синтаксис обрат |
ного вызова |
|||||||||||||||||||||||
VOID CALLBACK MsgBoxCallback( LPHELPINFO IpHetplnfo ) |
||||||||||||||||||||||||
Параметры обрат |
того вызова |
|||||||||||||||||||||||
IpHelpInfo |
LPHELPINFO. Указатель на структуру HELPINFO, которая содержит информацию о происшедшем событии вызова справки. См. определение структуры HELPINFO в главе 28. |
|||||||||||||||||||||||
Пример |
В этом примере функция MessageBoxIndirect применяется для отображения окна сообщения с нестандартной пиктограммой и контекстно-зависимой справкой. |
|||||||||||||||||||||||
См. \local-sources\chap08\08-18. txt |
||||||||||||||||||||||||
SendDlgltemMessage • Windows 98 • Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция SendDlgltemMessage представляет собой сокращенный метод отправки сообщения элементу управления диалоговым окном. Это равносильно вызову функции GetDlgltem для получения дескриптора элемента управления с последующим использованием функции SendMessage для |
|||||||||||||||||||||||
отправки сообщения. Как и SendMessage, функция SendDlgltemMessage отправляет сообщение непосредственно функции диалогового окна, обходя очередь сообщений. Функция SendDlgltemMessage применяется для отправки внеочередных сообщений элементам управления диалогового окна. Такие обычные действия, как смена текста в элементе управления, осуществляются с помощью функции SetDlgltemText. Менее обычные действия, такие как добавление элементов в элемент управления списком, лучше всего выполнять с помощью функции SendDlgltemMessage. |
||||||||||||||||||||||||
Синтаксис |
LONG SendDIgItemMessage( HWND hwndDlg, int nIDControl, UINT uMsg, WPARAM wParam, LPARAM IParam ) |
|||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||
hwndDlg |
HWND. Дескриптор окна диалогового окна (а не дескриптор элемента управления). |
|||||||||||||||||||||||
nIDControl |
int. Целочисленный идентификатор элемента управления, который должен принять сообщение. |
|||||||||||||||||||||||
uMsg |
UINT. Сообщение, которое должно быть принято элементом управления. |
|||||||||||||||||||||||
wParam |
WPARAM. Дополнительная информация, зависящая от сообщения. |
|||||||||||||||||||||||
IParam |
LPARAM. Дополнительная информация, зависящая от сообщения. |
|||||||||||||||||||||||
Возвращаемое значение |
LONG. Значение, возвращенное после обработки сообщения элементом управления. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
SendMessage, GetDlgltem |
|||||||||||||||||||||||
Соответствующие сообщения |
||||||||||||||||||||||||
С помощью этой функции могут быть отправлены все сообщения. |
||||||||||||||||||||||||
Пример |
Следующий пример аналогичен приведенному в описании функции GetDlgCtrllD. Единственное отличие состоит в том, что для установки надписи на кнопке IDCJTHIRD применяется функция SendDlgltemMessage. Результат выполнения этого примера такой же. |
|||||||||||||||||||||||
См. \local-sources\chap08\08-19. txt |
||||||||||||||||||||||||
SetDlgltemlnt • Windows 98 + Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция SetDlgltemlnt позволяет установить в качестве текста указанного элемента управления в диалоговом окне строковое представление заданного целого числа. |
|||||||||||||||||||||||
Синтаксис |
BOOL SetDlgItemInt( HWND hwndDlg, int nIDControl, UINT uValue, BOOL bSigned ) |
|||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||
hwndDlg |
HWND. Дескриптор диалогового окна. |
|||||||||||||||||||||||
nIDControl |
int. Целочисленный идентификатор элемента управления, в котором должны произойти изменения. |
|||||||||||||||||||||||
и Value |
UINT. Целочисленное значение, которое должно быть установлено в качестве текста в элементе управления. |
|||||||||||||||||||||||
bSigned |
BOOL. TRUE, если параметр uValueпредставляет собой целое число со знаком (int), и FALSE, если этот параметр — целое число без знака. |
|||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
GetDlgltemlnt, SetDlgltemText, GetDlgltemText |
|||||||||||||||||||||||
Соответствующие сообщения |
||||||||||||||||||||||||
WM_SETTEXT |
||||||||||||||||||||||||
Пример |
См. пример для функции DialogBox. |
|||||||||||||||||||||||
SetDlgltemText 4 Windows 98 * Windows 2000 |
||||||||||||||||||||||||
Описание |
Функция SetDlgltemText позволяет установить заголовок или текст элемента управления. |
|||||||||||||||||||||||
Синтаксис |
BOOL SetDlgItemText( HWND hwndDlg, int nIDControl, LPCTSTR Ipsz ) |
|||||||||||||||||||||||
Параметры |
||||||||||||||||||||||||
hwndDlg |
HWND. Дескриптор диалогового окна. |
|||||||||||||||||||||||
nIDControl |
int. Целочисленный идентификатор элемента управления, в который должны быть внесены изменения. |
|||||||||||||||||||||||
Ipsz |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую текст, который должен быть скопирован в элемент управления. / |
|||||||||||||||||||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE в ином случае возвращаемое значение — FALSE. |
|||||||||||||||||||||||
Включаемый файл |
winuser.h |
|||||||||||||||||||||||
См. также |
GetDlgltemText, SetDlgltemlnt, GetDlgltemlnt |
|||||||||||||||||||||||
Соответствующие сообщения |
||||||||||||||||||||||||
WM_SETTEXT |
||||||||||||||||||||||||
Пример |
См. пример для функции DialogBox. |
|||||||||||||||||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.