Системный трей

Тема в разделе "WASM.BEGINNERS", создана пользователем DuXeN0N, 18 май 2010.

  1. DuXeN0N

    DuXeN0N New Member

    Публикаций:
    0
    Регистрация:
    2 май 2009
    Сообщения:
    46
    Хочу убрать с экрана меню пуск, но этому мешает только трей, так как им иногда пользуюсь. Решил написать программу, которая создает такой же сис. трей но не знаю с чего начать. Ось win 7. Может у кого то есть примеры, идеи и тп... Буду очень благодарен. Писать хочу на с++
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Научись перехватывать Shell_NotifyIcon.
     
  3. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    А чем простой метод поиска классов Shell_NotifyIcon->BUTTON не подходит?
     
  4. DuXeN0N

    DuXeN0N New Member

    Публикаций:
    0
    Регистрация:
    2 май 2009
    Сообщения:
    46
    Y_Mur
    так эта функция только добавляет, изменяет или ставит фокус на значек.
     
  5. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    DuXeN0N
    а чего ты ещё от трея хочешь? После того как запросы на добавление значков пойдут в твою прогу всё остальное дело техники : имхо ;)
     
  6. freyr

    freyr New Member

    Публикаций:
    0
    Регистрация:
    23 фев 2010
    Сообщения:
    95
    Мб так?

    Код (Text):
    1. BOOL StartButton(BOOLEAN Visible)
    2. {
    3.     HWND    hTray, hChild;
    4.     BOOL    Status = FALSE;
    5.     TCHAR   lpClassName[MAX_PATH + 1];
    6.  
    7.     hTray = FindWindow("Shell_TrayWnd", NULL);
    8.  
    9.     if ( hTray != NULL )
    10.     {
    11.         hChild = GetWindow(hTray, GW_CHILD);
    12.  
    13.         if ( hChild != NULL )
    14.         {
    15.             do
    16.             {
    17.                 if ( GetClassName(hChild, lpClassName, MAX_PATH) )
    18.                 {
    19.                     if ( !lstrcmpi(lpClassName, "BUTTON")  )
    20.                     {
    21.                         Status = ShowWindow(hChild, Visible);
    22.                         break;
    23.                     }
    24.                 }
    25.                 hChild = GetWindow(hChild, GW_HWNDNEXT);
    26.             }
    27.             while ( hChild != NULL );
    28.         }
    29.  
    30.     }
    31.     return ( Status );
    32. }
     
  7. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    SetWindowParent натрави на родителя трея и перемести его на свое окно, а всю панель скрой.