Поиск:

Ответ в темуСоздание новой темы Создание опроса
> При закрытии окна вызвать окно сохранения 
V
    Опции темы
Agentx86
Дата 31.5.2009, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Нужно при закрытии приложения спросить у юзера нужно сохранить прогу или нет. Если нужно тогда надо нажать кнопку сохранить на тулбаре окна.
Я написал вот такой код.
Код

void CMainFrame::OnClose()
{
    HWND hWnd=(HWND)GetDlgItem(ID_FILE_SAVE);
    if(MessageBoxW(_T("Cохранить игру или нет?"),_T("Предупреждение"),MB_YESNO)==IDOK)
        ::SendMessage(hWnd,0,0,0);
    CFrameWnd::OnClose();
}

В итоге переменная hWnd хранит мусор. Подскажите мне как нужно правильно написать этот кусок кода.
PM MAIL   Вверх
Albor
Дата 31.5.2009, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 7
Всего: 9



А чего ты функцию сохранения не вызовешь напрямую, без SendMessage? ID_FILE_SAVE - это ID команды, а команда - это не окно. Поэтому HWND содержит мусор.
PM MAIL ICQ   Вверх
Agentx86
Дата 31.5.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Цитата(Albor @  31.5.2009,  06:59 Найти цитируемый пост)
А чего ты функцию сохранения не вызовешь напрямую, без SendMessage? ID_FILE_SAVE - это ID команды, а команда - это не окно. Поэтому HWND содержит мусор. 


Я в mfc не силен, поэтому не знаю какую функцию вызывать. Можно пример.
PM MAIL   Вверх
voov
Дата 1.6.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Патамушта мы пилоты
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 29.11.2007

Репутация: 8
Всего: 8



Agentx86, все, что нужно сделать, это в момент изменения документа вызвать 
Код

    pDoc->SetModifiedFlag();

после чего при закрытии программы, она сама спросит созраниться или нет.
PM MAIL   Вверх
Agentx86
Дата 1.6.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Цитата(voov @  1.6.2009,  10:55 Найти цитируемый пост)
Agentx86, все, что нужно сделать, это в момент изменения документа вызвать 

код C++
1:

    pDoc->SetModifiedFlag();





после чего при закрытии программы, она сама спросит созраниться или нет. 


Спасибо за ответ. Буду знать. Я уже все сделал и сдал этот проект. Сделал немного сложнее, но оно работает. Я создал диалог сохранения и его результат передал в перегруженную функцию onsavedocument
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1939 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.