Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851

Есть две функции NotifyHandler

23.12.2020, 16:54. Показов 1601. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для ListView и ToolBar.

фрагмент из ListView.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    switch(pLvdi->hdr.code)
    {
        case LVN_GETDISPINFO:
 
            switch (pLvdi->item.iSubItem)
. . .
        case NM_CLICK:
            {
            TCHAR szPath[MAX_PATH] = {0};  wcscpy(szPath, workFromDir::pathDirectory);
            TCHAR *pstr = szPath + wcslen(szPath); while(*pstr != _T('\\')) { pstr--; }  pstr++; *pstr = 0;
            wcscat(szPath, workFromDir::g_dirfilesVec[lpnmitem->iItem].cFileName);
           /* if(workFromDir::g_dirfilesVec[lpnmitem->iItem].dwFileAttribute & FILE_ATTRIBUTE_DIRECTORY)
                wcscat(szPath, _TEXT("\\"));*/
            statusBar::writeSb(szPath);
            }
. . .
     }
код Toolbar
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
LRESULT NotifyHandlerToolbar(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
    LPNMMOUSE lpnm = (LPNMMOUSE)lParam;
 
    switch (((LPNMHDR)lParam)->code) 
    {
    case NM_CLICK:
       
        switch(lpnm->dwItemSpec)
        {
        case IDM_FORWARD:
            {
            break;
            }
        case IDM_BACK:
            {
            break;
            }
        case IDM_UPDATE:
            {
            break;
            }
        case IDM_CLEAR:
            {
            break;
            }
       case IDM_SEARCH:
            {
            MessageBox(NULL, _TEXT("Имя файла:"), _TEXT("Поиск."), MB_OK | MB_ICONINFORMATION);
            break;
            }
        case IDM_HIDE:
            {
            break;
            }
        case IDM_FORMATDISC:
            {
            break;
            }
        case IDM_EXTRACTUSB:
            {
            break;
            }
        case IDM_HELP:
            {
            MessageBox(NULL, _TEXT("(с), все права защищены."), _TEXT("Помощь"), MB_OK | MB_ICONINFORMATION | MB_HELP);
            break;
            }
        default:
            break;
        }
    default:
        break;
    }
    return 0L;
}
При нажатии на соответствующие кнопки ToolBar, срабатывают MessageBox,
но срабатывают и соответствующие по номерам элементы ListView.

Как это исправить ?

Добавлено через 44 минуты
То есть при нажатии на соответствующие номерам ToolBar, элементы ListView с теме же порядковыми номерами, что и элементы ToolBar, тоже срабатывают MessageBox из Toolbar.

Добавлено через 14 минут
Вопрос, почему срабатывают MessageBox из ToolBar в ListView.

Добавлено через 1 минуту
Это связано с NM_CLICK.
Кто нибудь сталкивался с подобной проблемой ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2020, 16:54
Ответы с готовыми решениями:

Какие параметры должны быть у функции нотификации (NotifyHandler), или
Какие параметры должны быть у функции нотификации (NotifyHandler), или это зависит от реализации ?

В чем принципиальные различия, WndProc и NotifyHandler
В чем принципиальные различия, WndProc и NotifyHandler ? Добавлено через 59 минут В смысле в чем NotifyHandler дополняет(если можно...

Есть ли смысл устанавливать третью плашку, когда есть две, работающие в двух каналах?
День добрый! Можно ли расширять память третей плашкой ОП, если уже установлены две, работающие в двухканальном режиме. Будет ли от...

2
15 / 15 / 3
Регистрация: 18.05.2019
Сообщений: 851
29.12.2020, 17:27  [ТС]
Подскажите почему NM_CLICK из ToolBar срабатывает в ListView.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.12.2020, 17:32
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
Подскажите почему NM_CLICK из ToolBar срабатывает в ListView.
Цитата Сообщение от DenAlpetyan Посмотреть сообщение
switch (((LPNMHDR)lParam)->code)
Потому что в NMHDR есть ещё поля - от кого пришла эта нотификация https://docs.microsoft.com/en-... edit-nmhdr. Просто проверяй их.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2020, 17:32
Помогаю со студенческими работами здесь

Есть две простенькие задачи, есть решение
Всем привет, 11го числа сдаю ГИА по физике (9 класс). Так вот, нашел примерные задачки с решением (20 штук), и две из них не совсем...

в выпадающим меню есть ещё подменю на первом выпаде есть две кнопки они отрывают одно и тоже меню
нужно сделать чтобы кнопка avto00 на первом выпаде меню открывало меню составленное в css там где 11111 кнопка moto на первом...

Эту одну программу надо записать в две с процедурой и функцией. сначала с процедурой а потом с функции две задачи
Составить словесное (математическое) описание и блок-схему следующей задаче: у треугольника АВС длины сторон а, в, с вводятся с клавиатуры....

Написать две пользовательские функции, эквивалентные стандартной функции strlen
Написать программу, содержащую две пользовательские функции определения длины строки, эквивалентные стандартной функции strlen. Первая из...

Написать программу, содержащую две функции, сравнения строк, эквивалентные стандартной функции strcmp
Добрый вечер, многоуважаемые гуру программирования. Прошу помочь написать одну программу, собственно, вот она: "Написать программу,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru