|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||||||||||||
"Поймать" сообщение от LISTBOX09.11.2011, 11:40. Показов 4291. Ответов 42
Метки нет (Все метки)
Рассматриваю тут пример в книге и вот почему-то он у меня срабатывать не хочет - не могу изменять масштаб в диалоговом окне так как он тупо вообще не выбирается, может стиля какого не хватает при создании диалогового окна, или ещё чего, подскажите пожалуйста.
Собственно main.h (константы и объявления функций)
main.cpp
Собственно в нём ошибка если есть то разве что в последней функции DlgOnCommand в case ID_SCALE (строка 197), так как именно там обрабатываются сообщения от моего LISTBOX с диалогового окна, все остальные функции работают корректно. Ну ещё возможно что есть ошибка при заполнении LISTBOX (это функция DlgOnInitDialog (строка 162)), хотя вроде заполнился он нормально и все 8 строк в нём присутствуют. Сама программа,если интересно, выводит график, который она читает из dat файла (считывает первые 1000 байт). Файл dat с нормальным графиком могу предоставить, хотя можно тупо открыть любой файл чтобы программа считала с него 1000 байт, график только рандомный получится. На скриншоте видно что ни один пункт в LISTBOX "Масштаб" не выбран и мышкой не выбирается.
0
|
||||||||||||||||
| 09.11.2011, 11:40 | |
|
Ответы с готовыми решениями:
42
Поймать двойной клик по строке в LISTBOX и выполнить указанное действие Как поймать событие скроллинга в listBox? Поймать сообщение wm_copy |
|
|
|||||||||||
| 09.11.2011, 11:49 | |||||||||||
|
Gepar, в листе есть функция m_list.GetIttemState - проберайте в цикле все итемы от листа и когда выполнится условие
Добавлено через 1 минуту Вот вам кусочек кода из моей програмки
1
|
|||||||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 09.11.2011, 11:54 [ТС] | |
|
-=ЮрА=-, спасибо, сейчас попробую ещё с Вашим вариантом разобраться, но хотелось бы также найти ошибку что есть в коде этого примера, наверняка она маленькая в виде пропущенного стиля или небольшой строки так как судя по MSDN такая "ловля" сообщений как у меня в примере тоже должна работать.
0
|
|
|
|
|
| 09.11.2011, 12:08 | |
|
Gepar, я не очень люблю ковырятся в API там маханький косячок в CreateWindow и окна нет - так же и в остальном, притом у Вас не весь код не проанализируешь
![]() Ещё забыл спросить как вы отлавливаете клик по итему листа??? К тому же если изначально у вас не установлено выделение на каком-либо итеме то вы не отловите LVIS_SELECTED, чтобы такого не было в программах всегда предусматриваю m_list.SetItemState(0,LVIS_SELECTED); или же отлавливаю выбор при нажатии на лист...
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||
| 09.11.2011, 12:14 [ТС] | ||||||
|
Что-то не могу я разобраться с Вашей GetIttemState (да и в msdn что-то не находится она), как мне конкретизировать что у меня за LISTBOX ? В файле ресурсов он связан у меня с константой ID_SCALE, но как к нему теперь обратится с помощью этой функции? Если можно напишите чуть подробнее относительно моего примера, я ведь WINAPI только-только начал изучать.
Добавлено через 1 минуту -=ЮрА=-, клик по пункту в листе должен отлавливаться так (конкретно case ID_SCALE)
0
|
||||||
|
|
|||
| 09.11.2011, 12:15 | |||
|
PS:Сейчас накидаю проектик в MFC, нужно немножко времени...
0
|
|||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||
| 09.11.2011, 12:17 [ТС] | ||||||
|
При этом мой LISTBOX сам связан с константой ID_SCALE, и изначально он был пуст, а потом уже из массива char заполнен значениями вот так:
0
|
||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||
| 09.11.2011, 12:22 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
|
|||||||||||
| 09.11.2011, 12:33 | |||||||||||
|
Gepar, вот поклацайте
![]() Вот обработчик смены выбранного в листбоксе
0
|
|||||||||||
|
|
|||||||||||||||||
| 09.11.2011, 12:42 | |||||||||||||||||
|
PS:Вначале топика я давал пример с расширенной версией CListBox - CListCtrl там и иконки можно вставить и многое что ещё, поєтому
Для ListBox достаточно парсить
0
|
|||||||||||||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||
| 09.11.2011, 12:50 [ТС] | ||
|
Спасибо, но мне ничего непонятно из такого проекта, я WINAPI только начал изучать, а о MFC я пока знаю только что это такое так что Ваш MFC проект к сожалению мне непонятен
![]() Добавлено через 2 минуты
0
|
||
|
|
|
| 09.11.2011, 12:50 | |
|
Gepar, давай весь код, выложи в архиве и в личке напиша пароль, чтобі другие не могли смотреть без твоего согласия, не видя всего кода я помочь не могу. PS:Как видишь API код длиннее MFC-ного, поетому и не люблю API
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||
| 09.11.2011, 12:52 [ТС] | ||
0
|
||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 09.11.2011, 12:54 [ТС] | |
|
На всякий случай прикрепляю проект + там же тестовый файл с графиком.
Жирным (///) в main.cpp выделил то что относится к LISTBOX
0
|
|
| 09.11.2011, 12:54 | |
|
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 09.11.2011, 12:57 [ТС] | |
|
-=ЮрА=-, прикрепил zip архивом, посмотри пожалуйста, очень хотелось бы всё же разобраться с этим LISTBOX.
0
|
|
|
|
||
| 09.11.2011, 13:19 | ||
|
Не по теме: Deleting intermediate files and output files for project 'main - Win32 Debug'. Добавлено через 1 минуту PS: А разве 2 HISTANCE может быть WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int)
0
|
||
|
|
||||||||||||
| 09.11.2011, 14:36 | ||||||||||||
![]()
1
|
||||||||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||||||||||
| 09.11.2011, 18:40 [ТС] | |||||||||||||||
|
http://msdn.microsoft.com/en-u... e-de).aspx
А VS 6.0 вот пожалуйста:
Добавлено через 6 минут programina, Ваш пример работает вроде, но мне в нём кое что непонятно:
0
|
|||||||||||||||
| 09.11.2011, 18:40 | |
|
Помогаю со студенческими работами здесь
20
Как поймать сообщение об ошибке Не могу поймать сообщение wm_copydata Хук, который должен поймать сообщение WM_SIZE, его не ловит ListBox и всплывающее сообщение Если в listbox есть определенное название,выводит сообщение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|