Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сворачивание в трэй, прога останавливается 
V
    Опции темы
Rickert
Дата 2.10.2006, 06:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Сворачиваю втрэй так:
Код

void CSMSInformerTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    if (nID == SC_MINIMIZE)
    {
        nf.hWnd = m_hWnd;
        nf.uID = NULL;
    
        nf.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
        nf.uCallbackMessage = WM_MYICONNOTIFY;
        CString str, str2;

        str.Format("Achtung!");
        strcpy(nf.szTip, str.GetBuffer());

        HICON hIcon;
        hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
        nf.hIcon = hIcon;
        Shell_NotifyIcon(NIM_ADD, &nf);
        ShowWindow(SW_HIDE);
        return;
    }
    CDialog::OnSysCommand(nID, lParam);
}

nf - глобальная переменная.
В программе выполняется определённая работа в программно созданном потоке. После сворачивания работа всей программы и потока приостанавливается. Почему  и как с этим бороться?

Это сообщение отредактировал(а) Rickert - 2.10.2006, 06:40


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Kostt
Дата 2.10.2006, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 8.1.2006
Где: Томск

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



Да вроде все верно. У меня в моей проге почти также, все работает. Попробуй nf инициализировать в этом методе...
PM MAIL   Вверх
Rickert
Дата 2.10.2006, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Kostt, если ты инициализируешь его в этом методе, то у тебя будет переполнение буффера при определённых условиях. А дебугер проматерится, что мол стэк nf - побитый.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Kostt
Дата 2.10.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 8.1.2006
Где: Томск

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



Точнее, я инициализирую в своем методе, ответственном за сворачивание, добавляю в systray и скрываю окно. Работает как часы. 
Код

void CMyDialog::AppendIconToSystray()
{
    NOTIFYICONDATA nf;
    nf.hWnd = m_hWnd;
    nf.uID = NULL;
    
    nf.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
    nf.uCallbackMessage = WM_MYICONNOTIFY;
    strcpy( nf.szTip, "SomeTip" );
    
    HICON hIcon;
    hIcon = AfxGetApp()->LoadIcon( IDI_ICON16 );
    nf.hIcon = hIcon;
    Shell_NotifyIcon( NIM_ADD, &nf );
}

Попробуй вызывать этот код из OnMinimize, что ли...
PM MAIL   Вверх
Rickert
Дата 10.10.2006, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Разобрался, всё там верно было.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
EuGenius_Krivbass
Дата 29.1.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 29.1.2007
Где: Кривбасс, Днепр Украина

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



как разобрался?
Объясни.
Скинь свой проект.
Мне надо разобраться со сворачиванием в трей и дальнейшей работе в потоке.
[email protected]

Это сообщение отредактировал(а) EuGenius_Krivbass - 29.1.2007, 14:46
PM MAIL ICQ Skype YIM   Вверх
takedo
Дата 30.1.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Rickert, так уж всем объясни. А то как то некорректно, вопрос задал, решил - никому не сказал. smile  smile 


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
Rickert
Дата 31.1.2007, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



У меня переменная nf была паарметром класса. Просто сделал её глобальной.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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