|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
Как сделать кнопки диалогового окна не активными на время выполнения процесса??06.10.2011, 11:22. Показов 4397. Ответов 19
Метки нет (Все метки)
Уважаемые господа. Помогите пожалуйста новичку. Для управления неким устройством я создал диалоговое окно с набором кнопок с помощью визарда(VS-2008). После ввода необходимых параметров я запускаю работу потока, управляющего устройством и обрабатывающего результаты. Хотелось бы на время работы потока сделать часть кнопок диалогового окна не активным, т.е. "затенить" кнопки и сделать невозможным обращение к ним. Как это сделать из моей программы? И попутно второй вопрос: как сделать так, чтобы при нажатии на кнопку на клавиатуре отображалось нажатие соответствующей кнопки диалогового окна так же, как и при нажатии на нее с помощью мышки?
С уважением, Алексей.
0
|
|
| 06.10.2011, 11:22 | |
|
Ответы с готовыми решениями:
19
Сделать кликабельной кнопку на форме во время выполнения процесса (Process.Start) Как в калькуляторе сделать кнопки не активными, пока оба аргумента не будут записаны? |
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 06.10.2011, 13:09 | |
|
1. На время работы потока делай для кнопок EnableWindow(FALSE), а потом - опять EnableWindow(TRUE).
2. А нажатия клавиш обрабатывай в OnChar или OnKeyDown/OnKeyUp класса диалогового окна. Можно тупо вызывать обработчик нажатия кнопки окна - только не забудь предварительно проверить, не задизейблена ли соответствующая кнопка.
0
|
|
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
| 06.10.2011, 16:53 [ТС] | |
|
Спасибо за ответ, но не понятно (извини бестолкового): EnableWindow - это для всего диалогового окна или можно сделать не активным один из элементов окна? Вопрос ставился именно так. Если можно, пример использования.
Добавлено через 16 минут Еще раз спасибо, с первым вопросом разобрался. Что касается второго вопроса, то описанные выше обработчики я использовал в своей программе. Для мыши OnLButtonDown и OnLButtonUp, а для управления стрелками клавиатуры OnKeyDown, OnKeyUp и OnGetDlgCode. Вопрос в том, чтобы при нажатии на кнопку клавиатуры обратиться к кнопке в диалоговом окне на экране монитора, что бы отобразить ее нажатие.
0
|
|
|
3 / 3 / 0
Регистрация: 06.10.2011
Сообщений: 35
|
||
| 07.10.2011, 00:05 | ||
|
для этого в функциях клавиш пропишите обращение к диалоговому окну и что бы функция Enabled переходила в состояние true при нажатии на клавиатуре
0
|
||
|
|
||||||
| 07.10.2011, 10:00 | ||||||
|
danila52, нам всего лишь нужно воспользоваться методом EnableWindow. Вот и весь код
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
| 07.10.2011, 10:30 [ТС] | |
|
Уважаемые коллеги. Спасибо Вам за ответы, но к сожалению Вы не правильно меня понимаете. Когда вы нажимаете мышкой кнопку в диалоговом окне, то кнопка утопает, а после поднимается. Такой же реакции кнопки диалогового окна мне бы хотелось и при нажатии стрелки на клавиатуре, чтобы пользователь видел это изменение. Функция EnableWindow(FALSE/TRUE) делает кнопку не активной(что требовалось в моем первом вопросе и благодаря Вам я с ним уже разобрался).
0
|
|
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
| 07.10.2011, 15:00 [ТС] | |
|
Нужно, чтобы по нажатию кнопки на клавиатуре (используется функция OnKeyDown) соответствующая кнопка диалогового окна, сделанного в визарде, утапливалась, а при отпускании(OnKeyUp) поднималась. Т.е. происходили те же действия, как и при использовании OnLButtonDown и OnLButtonUp при обработке сообщений мыши.
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
||
| 07.10.2011, 22:36 | ||
|
У тебя экранная клавиатура ?? и все реализовано на кнопках СButton ? можно послать кнопке сообшение " ой на мне щелкнули" можно создать класс производный от кнопки
1
|
||
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
| 09.10.2011, 17:04 [ТС] | |
|
Уважаемый ValeryS. Соответствующая, это та кнопка диалогового окна, нажатие которой мне бы хотелось отобразить при нажатии на кнопку клавиатуры, которая лежит на столе. С чего Вы взяли, что речь идет о виртуальной клавиатуре. Советы типа Вашего (ой на мне щелкнули) не принимаются, поскольку это очевидно. Все методы,обработчики сообщений нажатия кнопки мыши или клавиатуры, описаны в классе, производном от CWnd(хотя от CButton так же все работает). Вопрос остается открытым.
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
|||||||||||||||
| 09.10.2011, 19:17 | |||||||||||||||
|
и прямо таки все методы описаны в CWnd или некоторые переопределены??? и новых в производных классах нет??? посмотри код
Добавлено через 2 минуты BM_CLICK это есть сообщение " ой на мне щелкнули" Добавлено через 3 минуты BM_ переводится буттон мессаге сообщения для кнопки
и где они определены в CWnd ????
0
|
|||||||||||||||
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
||||||
| 10.10.2011, 15:18 [ТС] | ||||||
Что касается Вашего сарказма насчет CWnd, то я имел ввиду, что методы(функции) обработчики сообщений, например OnKeyDown (сообщение WM_KEYDOWN), описаны в классе, производном от CWnd.
0
|
||||||
|
|
||
| 10.10.2011, 15:43 | ||
|
danila52, я тоже вначале ринулся вводить обработчик
0
|
||
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
|||||||
| 10.10.2011, 20:22 | |||||||
|
wButAuto. это окно моей кнопки m_LeftButton это окно твоей кнопки??? если да то все должно работать если нет куда мы шлем сообщение ??? там же написано перед посылкой сообщения не видел ни разу когда даблклик подменивается на лефтбуттон Добавлено через 5 минут ![]() привести в пример кучу классов где они не переопределены и в самой CWnd это определено как default нет все таки отладчик великая вещь особенно по Ф11
0
|
|||||||
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
| 10.10.2011, 22:12 [ТС] | |
|
Что означает "окно кнопки"? Может все-таки wButAuto есть переменная( как говорят друзья англичане variable), присвоенная кнопке? В моем случае именно так, переменная типа control.
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
|
|||
| 10.10.2011, 22:27 | |||
|
переменная это переменная кнопка это окно (она не виновата так поучилось) и посему у друзей англичан(точнее американцев) есть окно и есть класс окна (который к классу С++ не имеет никого отношения) и вообще я устал спорить возьми MSDN прочитай и спорь с ними это они стерляди придумали что сообщение BM_CLICK говорит кнопке что она нажата я даже согласен что MFC ты знаешь лучше меня(тогда зачем вопросы?)
0
|
|||
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
||||||
| 11.10.2011, 12:54 [ТС] | ||||||
|
Спорить Вас никто не заставляет, если знаете как помочь вопрошающему и есть желание ответить, то ответьте без хамства и брюзжания, тем более я написал в самом начале, что в Visual C я новичок и поэтому задаю вопросы, которые могут казаться тривиальными для знатоков. Хотелось бы так же отметить, что в русском языке существуют два местоимения: ты и Вы, и вежливый и воспитанный человек должен знать, какое и в каком случае применять.
Добавлено через 2 часа 25 минут Всем спасибо. Разобрался. Листинг программы выглядит следующим образом:
0
|
||||||
|
|
|
| 11.10.2011, 13:36 | |
|
[OFF]
0
|
|
|
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 12
|
|
| 11.10.2011, 15:08 [ТС] | |
|
Юра! Нажимаем кнопку на клавиатуре, при этом отображается нажатие кнопки диалогового окна. Что мне и требовалось.
0
|
|
| 11.10.2011, 16:10 | |
|
0
|
|
| 11.10.2011, 16:10 | |
|
Помогаю со студенческими работами здесь
20
Как получить время выполнения процесса в наносекундах? Bitmap с фоновым цветом диалогового окна (как сделать?) Как сделать вычисления внутри диалогового окна, а не по сообщению Как сделать выравнивание по левому краю заголовка диалогового окна? Ошибка во время запуска диалогового окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|