Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Глюки Bcb или Винды, или что ?

376
28 ноября 2002 года
Absolut
220 / / 22.11.2002
Есть некая форма с компонентами типа TCheckBox, TEdit и т.п. На событие формы OnCreate устанавливаются свойства компонентов формы,
путём чтения значений свойств из .ini файла. На OnDestroy формы эти же свойства компонентов обратно сохраняются в файл. И вот собственно
сам глюк : При нормальной работе программы всё проходит на ОК. Однако, если производить выключение системы через меню Start->Shut Down
событие формы OnDestroy не наступает и, соответственно, изменённые в форме данные не сохранятся. Какими путями с этим бороться ?
358
28 ноября 2002 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by Absolut
Есть некая форма с компонентами типа TCheckBox, TEdit и т.п. На событие формы OnCreate устанавливаются свойства компонентов формы,
путём чтения значений свойств из .ini файла. На OnDestroy формы эти же свойства компонентов обратно сохраняются в файл. И вот собственно
сам глюк : При нормальной работе программы всё проходит на ОК. Однако, если производить выключение системы через меню Start->Shut Down
событие формы OnDestroy не наступает и, соответственно, изменённые в форме данные не сохранятся. Какими путями с этим бороться ?


Писать обработчик сообщения WM_ENDSESSION
вот что про него говорит MSDN:

Цитата:
WM_ENDSESSION
The WM_ENDSESSION message is sent to an application after the system processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the session is ending.

A window receives this message through its WindowProc function.

LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_ENDSESSION
WPARAM wParam, // end-session option
LPARAM lParam // logoff option
);
Parameters
wParam
Specifies whether the session is being ended. If the session is being ended, this parameter is TRUE; otherwise, it is FALSE.
lParam
Specifies whether the user is logging off or shutting down the system. If this parameter includes the ENDSESSION_LOGOFF value, the user if logging off. (Note that this parameter is a bit mask. To test for this value, use a bitwise operation; do not test for equality.)
Windows 2000: If this parameter is zero, the system is shutting down.

Return Values
If an application processes this message, it should return zero.

Remarks
If the wParam parameter is TRUE, the session can end any time after all applications have returned from processing this message. Therefore, an application should perform all tasks required for termination before returning from this message.

The application need not call the DestroyWindow or PostQuitMessage function when the session is ending.

Requirements
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Winuser.h; include Windows.h.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог