|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
Visual Studio 6.0 C++ MFC Событие BEGIN_EVENTSINK_MAP03.04.2013, 15:16. Показов 2746. Ответов 18
Метки нет (Все метки)
Задача:
1. есть диалог, на нем: 1.1. List Control со столбцами "Штрих-код" и "Количество". 1.2. Check Box 2. если Check Box == 0, то при считывании штрих-кода сканером в колонку "Штрих-код" записываются цифры штрихКода, в колонку "Количество" единица(пока так) 3. если Check Box == 1, то при считывании штрих-кода сканером открывается модально диалог с Edit ами, в один из них помещается считанный штрих-код(можно внести или исправить вручную), в другой вручную вводится количество. это все получается, работает. что не получается: нужно сделать так, что бы, при считывании сканером штрих-кодов в модальном диалоге (с занесенным туда уже считанным штрих-кодом) вновь считанный штрих-код заносился в Edit, там должен оставаться последний считанный. как сделано то, что работает: 1. в главном диалоге в BOOL CSbor::OnInitDialog() .................... if (!m_Scaner.Create(NULL,0,CRect(0,0,0,0), this,IDC_SCANER)) { MessageBox ( "Сканер НЕ ПОДКЛЮЧЕН!!!", "Ошибка подключения сканера!!!", MB_ICONASTERISK ); return -1; // fail to create } m_Scaner.SetAutoDisable(TRUE); m_Scaner.SetDataEventEnabled(TRUE); m_Scaner.SetDeviceEnabled(TRUE); ................... 2. BEGIN_EVENTSINK_MAP(CSbor, CPropertyPage) ON_EVENT(CSbor, IDC_SCANER, 1 /* DataEvent */, OnDataEventScaner, VTS_NONE) END_EVENTSINK_MAP() 3. void CSbor::OnDataEventScaner() { } если я находясь в модальном диалоге и считываю несколько раз штрих-код, то при закрытии диалога вываливаюсь в основной и сразу возникает событие, возвращающее в модальный диалог со следующим считанным штрих-кодом и это столько, сколько раз считывал сканером. в модальном диалоге добавляю событие и обработчик, но событие не возникает. 1. не понятно, нужно ли опять создавать обоъект или как то передать уже созданный в основном диалоге(if (!m_Scaner.Create(NULL,0...) 2. как узнать, почему событие не происходит, кроме задания точки останова на обработчике? 3. можно ли как то посмотреть какие события происходят вообще?
0
|
|
| 03.04.2013, 15:16 | |
|
Ответы с готовыми решениями:
18
MFC в visual studio Visual Studio C++ и MFC Visual Studio C++ MFC (графика) |
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
| 05.04.2013, 18:00 [ТС] | |
|
оказалось при возникновения события я попадаю в обработчик и оттуда вызываю модальный диалог и остаюсь в обработчике, пока этот диалог не закрою.
Теперь не знаю, как из обработчика послать сообщение, что бы открылся диалог, но из обработчика нужно сразу выйти. Есть клавиша вызова модального диалога, как можно симитировать тажатие этой клавиши?
0
|
|
|
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
|
|
| 05.04.2013, 19:14 | |
|
кто мне поможет? а в теме В объекте вид создать функцию, заменяющую побочную диагональ нулями
еще даже 1 ответа нету
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
| 05.04.2013, 19:52 [ТС] | |
|
Lynatik001, спасибо, помогло.
0
|
|
|
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
|
|
| 05.04.2013, 19:54 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
||
| 05.04.2013, 23:37 [ТС] | ||
|
Lynatik001, прасти, не видел твою тему, подумал, подкалываешь, типа, глупость спрашиваешь. Сложно, наверное не будучи экстрасэксом понять, где я лажаю.
Добавлено через 1 час 43 минуты
0
|
||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||
| 06.04.2013, 07:26 | |||
|
модальный диалог на то и модальный что перехватывает все сообщения вывод или делай не модальный диалог или читай штрих код в диалоге Добавлено через 1 минуту делай в окне отдельную функцию а в диалоге вызывай
1
|
|||
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
| 06.04.2013, 22:00 [ТС] | |
|
ValeryS, спасибо. Что модальный перехватывает все сообщения, не знал, опыта такого программирования нет.
Наверное я не очень четко свормулировал задачу, но, как будто, получается: 1. есть ГЛАВНЫЙ диалог 2. на ГЛАВНОМ диалоге есть Check Box 3. на ГЛАВНОМ диалоге есть таблица с колонками ("штрих-код", "количество", "цена", "наименование"). 4. в одном положении Check Box при считывании штрих-кода сканером появляется строка, штрих-код заносится в колонку "штрих-код", количество равное 1 заносится в колонку "количество".(пока без объединения строк с одинаковым штрих-кодом, потом нужно будет как то сделать). 5. В другом положении Check Box при считывании штрих-кода сканером появляется МОДАЛЬНЫЙ диалог с полями (Едит) "штрих-код", "количество", "цена", "наименование". При появлении МОДАЛЬНОГО диалога штрих-код уже занесен в свое поле, заполняются вручную остальные поля, в том числе и штрих-код, если надо. если в этот момент считать штрих-код, он теперь заносится в свое поле. 6. Есть на МОДАЛЬНОМ диалоге кнопки: "добавить(+)", "вставить(*)", "удалить(-)", пока нажатие любой кнопки или клавиш, указанных на кнопках, приводят к одному - МОДАЛЬНЫЙ диалог закрывается, в ГЛАВНОМ появляется строка с заполненными полями. 7. На ГЛАВНОМ диалоге есть кнопка "ввод товара", при нажатии этой кнопки открывается этот же МОДАЛЬНЫЙ диалог п.5, позволяющий проделать все те же действия, что и при появлении от считывания сканером. моя ошибка была в том, что я запускал из обработчика МОДАЛЬНЫЙ диалог и оставался в обработчике, пока не закрою этот диалог. Теперь обработчик в зависимости от Check Box либо выполняет п.4 либо посылает команду GetParent()->PostMessage(WM_COMMAND,IDC_Insert,0); , что приводит к срабатыванию кнопки п.7. Конечно, только при возникновении события первый раз, в другие разы(когда МОДАЛЬНЫЙ диалог открыт) только меняется штрих-код в поле МОДАЛЬНОГО диалога. Может я не во всем разобрался, делов еще много, но все семь пунктов работают.
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||||||||||
| 06.04.2013, 23:14 | |||||||||||
|
Я не понял зачем такие сложности
вызываешь диалог (который модальный) в нем вносишь что надо нажмешь ок все внесется в главную программу нажмешь отмена ничего не внесется например так вот твой модальный диалог
http://www.firststeps.ru/ вкладка Visual C++ куча примеров, может что и пригодится
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
| 06.04.2013, 23:29 [ТС] | |
|
приблизительно так я и делаю, а насчет выхода из модального только по ОК или Кансел мало, нужно либо добавить товар(количество), либо заменить количество, либо вычесть. И миниму действий, считал сканером, набрал количество, нажал +,- или *.
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||||||||||||||||||
| 07.04.2013, 00:02 | ||||||||||||||||||
|
например обработчик +
но смысл надеюсь понятен делаем свои действия, потом вызываем метод базового класса ( можешь и своего если он у тебя переопределен) и вызывающая функция думает что ты нажал ОК Добавлено через 5 минут можешь еще ввести поле действия в класс своего диалога чтобы не диалог складывал вычитал, а основная программа например так
1
|
||||||||||||||||||
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|||||
| 07.04.2013, 09:52 [ТС] | |||||
|
Задумался глядя на Я пишу, как бы, аналог терминала сбора данных, если не знаете, это такая штука, используется для введения в таблицы документов 1С товаров, на экранчике терминала приглашение: введите штрих-код - сканируешь, дальше на экранчике: введите количество - вводишь количество и нажимаешь Ентер. А случайно нажал, для этого и есть возможность минусовать или замещать количество, в некоторых конфигурация терминала и этого нет.
0
|
|||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||||||||
| 07.04.2013, 11:23 | |||||||||
|
а реализацию сам придумай сейчас как суммируешь? ![]() Я ведь не настаиваю но "зашита от дурака" по моему должна быть а если ты хочешь ускорить процесс то лучше бы предусмотреть "горячие клавиши" чтобы не дергаться от клавиатуры к мышке ![]() нужно было написать
0
|
|||||||||
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
||||
| 07.04.2013, 13:13 [ТС] | ||||
|
Добавлено через 13 минут если интересно, пока то, что сделано: http://files.mail.ru/69891F877... 0A05BA1F91 Добавлено через 50 минут видимо так посылать нельзя exe файл, сам проверил ссылку, ругается
0
|
||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||||
| 07.04.2013, 13:16 | |||||
|
но у меня нет шестерки так что только общие замечания atoi atof Добавлено через 2 минуты сожми архиватором и брось сюда в расширенном режиме заначек скрепки
0
|
|||||
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
| 07.04.2013, 14:35 [ТС] | |
|
http://files.mail.ru/CE1A5F0C4... 736013135A
скажите, пожалуйста, подобного рода задачи лучше писать на Бэйсике или еще на каком другом языке?
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
||||||
| 12.04.2013, 12:53 [ТС] | ||||||
|
что бы строки в таблице CList Control выделялись по-человечески, использую это (нашел где-то в инете)
0
|
||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||
| 12.04.2013, 16:12 | |||
|
т.е в этой записи означает к стилям описным в ExStyle добавить LVS_EX_FULLROWSELECT а здесь остальные стили потерял
1
|
|||
|
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
|
|
| 12.04.2013, 17:17 [ТС] | |
|
ValeryS, понял, спасибо.
0
|
|
| 12.04.2013, 17:17 | |
|
Помогаю со студенческими работами здесь
19
Visual Studio C++ MFC Aplication Как подсоединить MFC AppWizard к С++ 9.0 Visual Studio ? Visual Studio C++ MFC Application - работа с файлом Построение графиков в MFC приложении Visual Studio. Окно со свойствами в проекте MFC, как в Visual Studio Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|