Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
23 / 23 / 7
Регистрация: 30.01.2009
Сообщений: 103

Работа с системным треем

07.12.2009, 16:49. Показов 2516. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, вот пишу программу после запуска она сворачивается в трее и управление ею происходит от туда Меню уже написал осталось только отловить нажатие мишки по иконке в трее но как отловить нажатие мышкой я не знаю подскажите мне пожалуйста.
P.S OS Win7
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2009, 16:49
Ответы с готовыми решениями:

Получение путей к системным каталогам
Получение путей к системным каталогам. Появление этого поста связано с одной из стандартных проблем, любого программиста...

Простой путь к системным папкам
Прошу прощения т.к такие темы были и не раз, но ответ был всегда в стиле: Дофига всякой ненужной всячены для консолек. А мне нужен...

Как работать с системным реестром в Windows XP
Скоко не слонялся по просторам нашего могучего интернета в поисках подробного описания функций RegCloseKey RegCreateKeyExA ...

2
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.12.2009, 18:55
Лучший ответ Сообщение было отмечено Alex90 как решение

Решение

Alex90, скинь код программы
В функции оконной процедуры
C++
1
if(message == WM_ICON_CB && hwnd == hwnd_myapp && wParam == nid.uID)
0
23 / 23 / 7
Регистрация: 30.01.2009
Сообщений: 103
07.12.2009, 19:41  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <windows.h>
 
bool TrayMessage (HWND hDlg, DWORD dwMessage, UINT uID, HICON hIcon, PSTR pszTip) 
 
{ 
   BOOL res; 
 
   NOTIFYICONDATA tnd; 
 
   tnd.cbSize = sizeof(NOTIFYICONDATA); 
   tnd.hWnd = hDlg; 
   tnd.uID = uID; 
 
   tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; 
   tnd.uCallbackMessage = WM_MOUSEMOVE;
   tnd.hIcon = LoadIcon(0, IDI_WARNING);
 
 
   if (pszTip) 
   { 
       lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip)); 
   } 
   else 
   { 
       tnd.szTip[0] = '\0'; 
   } 
 
   res = Shell_NotifyIcon(dwMessage, &tnd); 
 
   return res; 
}
 
 
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
    HWND hwnd;
    HWND hWnd, hMenu;
    MSG msg;
    LONG x,y;
    WNDCLASS w;
    memset(&w, 0, sizeof(WNDCLASS));
    w.style = CS_HREDRAW | CS_VREDRAW;
    w.lpfnWndProc = WndProc;
    w.hInstance = hInstance;
    w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    w.lpszClassName = "My Class";
    RegisterClass(&w);
    hwnd = CreateWindow("My Class", "My title", WS_OVERLAPPEDWINDOW,
        300, 200, 200, 180, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
LONG WINAPI WndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
    static HMENU hMainMenu;
 
    HWND hMenu;
    TrayMessage(hWnd, NIM_ADD, 777, 0, "Test tray");
//  ShowWindow (hWnd, SW_HIDE);
    switch (Message){
    case WM_COMMAND:
 
if(LOWORD(wParam) == 1002)
            {
                   MessageBox(hWnd, "Open", "Open", 0);
            }
 
        break;
    }
switch (Message){
    case WM_COMMAND:
if(LOWORD(wParam) == 1004)
            {
                PostQuitMessage(0);
            }
 
        break;
    }
switch (Message){
    case WM_RBUTTONDOWN:
            {
            hMainMenu = CreatePopupMenu();
            AppendMenu( hMainMenu, MF_STRING, 1002, "Open");
            AppendMenu( hMainMenu, MF_STRING, 1003, "About");
            AppendMenu( hMainMenu, MF_SEPARATOR, 0, "");
            AppendMenu( hMainMenu, MF_STRING, 1004, "Exit");
            SetForegroundWindow(hWnd);
            TrackPopupMenuEx(hMainMenu,TPM_HORIZONTAL|TPM_LEFTALIGN,777,777,hWnd,NULL);
            }
        break;
}
 
   switch (Message){
    case WM_DESTROY:    
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, Message, wParam, lParam);
    }
    return 0;
}
меню появляется только если щелкнуть ПКМ и только в "программе"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2009, 19:41
Помогаю со студенческими работами здесь

Нужна информация или мануал по системным функциям
Доброго времени суток, будьте добры оказать услугу. Есть ли у кого источники откуда я могу почитать, ознакомиться с функциями, которые...

Получение пути к системным папкам через hexadecimal значение
Добрый день, может кто подсказать такую вещь, вот есть код такого вида: bool getPath(char *ret,int id) { ...

Механизмы взаимодействия прикладных программ с системным календарем и таймером
Пожалуйста помогите ответить на вопрос: какие могут быть механизмы взаимодействия прикладных программ с системным календарем и таймером и...

Воспроизведение звука системным динамиком при нажатии определенной клавиши
Добрый вечер! Кто знает как сделать, чтоб при нажатии клавиши &quot;.&quot; срабатывал Beep (600,400), а при нажатии &quot;-&quot; Beep(600,900),...

Работа с треем
Здравствуйте! Подскажите, как сделать так, чтобы во всплывающем окне из трея (BalloonTip) отображалась какая-либо другая информация (к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru