Закрывает заданное окно редактирования, а также отображенный в нем файл.
int _EdCloseFile(WHANDLE wh, int option) WHANDLE wh; /* Дескриптор окна редактирования. */ int option; /* Опция закрытия. */ |
Примечания
Параметр option может принимать одно из следующих значений:
int | Результат |
---|---|
0 |
Немедленное сохранение. |
1 |
Сохранение после подтверждения через диалоговое окно. |
2 |
Открывает диалоговое окно Save As. |
_EdCloseFile( ) возвращает одно из следующих значений:
int | Смысл |
---|---|
1 |
Отмена без сохранения файла. |
0 |
Файл сохранен и закрыт. |
- 1 |
Изменения аннулированы, файл закрыт. |
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.
Пример
В следующем примере открывается для редактирования заданный параметром файл, в нем удаляется символ, и сеанс редактирования трижды закрывается. В первый раз вызывается _EdCloseFile( ) с опцией немедленного сохранения, во второй раз - с опцией сохранения через диалоговое окно и в третий раз - с опцией диалогового окна Save As. Каждый раз на экран выводится значение, возвращаемое программой _EdCloseFile( ).
Код Visual FoxPro
![]() | |
---|---|
SET LIBRARY TO EDCLOSE = EDCLOSE("x") |
Код C
![]() | |
---|---|
#include <pro_ext.h> void putLong(long n) { Value val; val.ev_type = 'I'; val.ev_long = n; val.ev_width = 5; _PutValue(&val); } FAR Example(ParamBlk FAR *parm) { #define pFILENAME ((char FAR *) _HandToPtr(parm->p[0].val.ev_handle)) WHANDLE wh; int retValue; if (!_SetHandSize(parm->p[0].val.ev_handle, parm->p[0].val.ev_length+1)) { _Error(182); // "Insufficient memory" } _HLock(parm->p[0].val.ev_handle); pFILENAME[parm->p[0].val.ev_length] = '\0'; // Open, delete a character, close "save without asking" wh = _EdOpenFile(pFILENAME, FO_READWRITE); _HUnLock(parm->p[0].val.ev_handle); _EdSelect(wh, 0, 1); _EdDelete(wh); retValue = _EdCloseFile(wh, 0); // save without asking _PutStr("\n_EdCloseFile() ="); putLong(retValue); // Open, delete a character, close "save with asking" _HLock(parm->p[0].val.ev_handle); wh = _EdOpenFile(pFILENAME, FO_READWRITE); _HUnLock(parm->p[0].val.ev_handle); _EdSelect(wh, 0, 1); _EdDelete(wh); retValue = _EdCloseFile(wh, 1); // save with asking _PutStr("\n_EdCloseFile() ="); putLong(retValue); // Open, delete a character, close "save as" _HLock(parm->p[0].val.ev_handle); wh = _EdOpenFile(pFILENAME, FO_READWRITE); _HUnLock(parm->p[0].val.ev_handle); _EdSelect(wh, 0, 1); _EdDelete(wh); retValue = _EdCloseFile(wh, 2); // save as _PutStr("\n_EdCloseFile() ="); putLong(retValue); } FoxInfo myFoxInfo[] = { {"EDCLOSE", (FPFI) Example, 1, "C"}, }; FoxTable _FoxTable = { (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; |
Смотрите также

c Microsoft Corporation. All rights reserved. Microsoft is not reponsible for the contents of the translated help topics.