На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Sys Tray
    Задача:
    Окно. При нажатии на кнопку СВЕРНУТЬ иконка прыгает в сис трей, а на панели задач окна не видно. (помощ в создании иконки в сис трэе не нужна). И к примеру по дабл_клику по иконке окно вновь появляется (как его раскрыть)
    Так вот как я понимаю мне надо отловить сообщение которое посылается приложению при нажатии "СВЕРНУТЬ". т.е. я просто не знаю какое это сообщение. Но это не все, как реализовать чтобы свернутое приложение не было на панели задач, а разворачивалось из вне ( ну к примеру при щелчке на иконке в сис трэе)
    Заранее благодарен.
      Короче говоря, из того, что именно тебе надо, я понял мало, но попробую помочь. Во-первых, обрабатывай WM_SIZE и при позиции SIZE_MINIMIZED прячь окно. Думаю, знаешь, как.
      Если сможешь объяснить вопрос точнее, помогу, недавно с этим конкретно разбирался. :)
        Запускаешь программу. Она своим поведением особо не выделяется. Обычное окошко. При нажатии на кнопку «СВЕПНУТЬ» оно не появляется на панели инструментов!!! А в сис треэ появляется иконка. При двойном щелчке на иконку появляется родное  окно, а иконка пропадает. Как это реализовать? Как работать с иконкой в сис трее я знаю, а вот все остальное. Надеюсь, что я понятно излагаюсь.
          Кстати, о терминах:
          The taskbar notification area is sometimes erroneously called the "tray." - Цитата из MSDN.
            ShowWindow(hWnd, SW_HIDE); // скрыть
            ShowWindow(hWnd, SW_RESTORE); // вернуть

            Ну а сообщения - смотря что нажали:
            WM_CLOSE
            или WM_WINDOWPOSCHANGED, где можно определить, что с окном делали.
              Спасибо. Все вроде работает. Но появилась еще одна маленькая проблемка. Дело в том что когда вызывается ShowWindow(hWnd, SW_RESTORE);  то окно появляется но оно не активно. Пробывал SetFocus,  но ничего не выходит. Как принудительно окну присвоить фокус ввода???
                Да, была у меня такая проблема. Это потому, что когда юзер жмет минимайз, и ты прячешь окно, то при дабл клике тебе надо и разворачивать окно назад.
                Попробуй так: (при показе окна)
                ShowWindow(SW_RESTORE);
                ShowWindow(SW_SHOW);
                SetForeground();

                У меня работало безотказно :)
                Удачи.
                  2 reporter: первая строчка лишняя
                    А вот и дудки !  :)
                    По крайней мере, у меня в Вин2К, если этого не сделать, то окошко станет активным, но НЕ ресторнется ! Просто замигает черным и успокоится.  :P
                      Попробуй сворачивать в сис трей двойным кликом на
                      заголовке окна.

                      void CMainDlg::OnNcLButtonDblClk(UINT nHitTest,CPoint point)
                      {
                           if(nHitTest==HTCAPTION)
                                 SysTray();
                      }
                      .......
                      //}}AFX_MSG_MAP
                                    ON_WM_NCLBUTTONDBLCLK()

                      ..............

                      //}}AFX_MSG
                      afx_msg void OnNcLButtonDblClk(UINT nHitTest,CPoint point);
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0263 ]   [ 16 queries used ]   [ Generated: 28.04.24, 18:06 GMT ]