![]() |
|
|
![]()
|
|
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Есть блок диалога с одной единственной кнопкой. Эта кнопка является DefaultButton, несмотря на то, что в свойствах соотвтествующее поле задано false. Мне надо как-то сделать так, чтобы на не нажималась по нажатию клавиши Enter или пробел.. Помогите решить эту проблемку
-------------------- я не гольфист - я хоккеист |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
пожалуста...
-------------------- я не гольфист - я хоккеист |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Я тоже задумался над этой проблемой, раньше не замечал, но сейчас проверил, то же самое..
Пока что решения этой проблемы не нашел, единственное пока что получилось, если уж так срочно надо - создать "фиктивную кнопку", Убрать ее с поля видимости (например, под какой-то элемент затащить, invisible ее делать нельзя, не получится), и назначить ее как дефоултбаттон. Работает, но сам понимаешь, решение хоть и быстрое, но с точки зрения экономии ресурсов кривое. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Dreamer_0x01
блин, а под чё её затащить-то, под мою кнопку штоли? прийдется ручками её таскать на передний план в OnPaint? или !! можно вторую кнопку поместить в регион 0,0,0,0 - наверное прокатит. А кстати в винде и у меня в программе в частности, уж на одну то кнопку можно и раззариться, но это конечно "НЕ НАШ МЕТОД!!!" - ты прав. А не посоветуешь, чего можно почитать для того, чтобы сесть за программирование твоего 51-го, а то у меня все есть и 51-ые и студия для них, а толку чувствую нет и образование - не копенгаген для процессоров... Посоветуй, пожалуйста. Добавлено @ 13:03 Блин, кнопка вторая задисебленая ничего не дает! Добавлено @ 13:06 а попробую сейчас ее не дисаблить - наверное получится. -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
тогда так. Тоже не лучший метод, но работает:
-------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
а чего такое 0хD? это 00001101 - чего бы это значило ? Идея то понятна вроде, думаешь, что WM_KEYDOWN = 0xD???
Добавлено @ 13:15 И тогда я только мышкой на неё нажать смогу? Тоже вроде идея. счас попробую чего - нибудь такое изображу. -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
1. Поставить себе конкретную задачу. То есть что собственно ты хочешь делать. 2. Взять даташит на процессор 51го симейства. Можно старый, но грамотный. Могу кинуть сhm по нашему отечественному процу КМ1815ВЕ51 - это наше исполнение "классики". Все совпадает. Инфа на русском. Базовые операции (работа с основными регистрами) ты сможешь делать. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Чего то непойму никак, зачем pMsg->wParam&0xD и тогда return 0?
А если if(pMsg->message&WM_KEYDOWN)return 0 ??? Добавлено @ 13:21
Было бы супер! Только с кнопкой так и не пойму. -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
поправлю:
возвращай 1, потому что по нулю дебаггеру что-то не нравится. А для пробела еще 0x20 добавь. 0x0D - это распространенный символ "возврата каретки". Часто соответствует нажатию энтера. А для пробела, щас в отладчике посмотрел, генерируется код 0х2. То есть чтобы обе клавиши блокировалось, делай if ((pMsg->wParam&0x0d)||(pMsg->wParam&0x20))return 1; -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
takedo
Я не понял...А что - нажимается? Ты имеешь ввиду кнопку, которая раньше была "Ок"? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
да я переприсвоил ей идешник
Добавлено @ 13:25 Dreamer_0x01 Щас попробую, только надо поискать какие-нибудь на них defines -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
А как насчет того, что б просто перегрузить виртуальную функцию OnOk() диалога, и просто стереть все внутри ее, т.е. оставить
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Coocky
нет, я у себя тоже такой пример создал - пустое диалоговое окно, с которого убрал ВСЕ кнопки. Создал ЕДИНСТВЕННУЮ кнопку со СВОИМ идинтификатором, отличном от того, что был у старых кнопок. У нее в FALSE выставил свойство DefaultButton. И этой кнопке присвоил примитивное действие - MessageBox, например. Так вот при запуске все равно эта кнопка оказывается "дефолтной". А ему как японял в эдитах или прочих там штуках по нажатию Энтера не нужно, чтобы действия этой кнопки выполнялись... -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Dreamer_0x01
Сенку! Теперь по кнопкам не нажимается. Блин, только не понятно как бы с переносимостью то разобраться... Надо не 0xN делать а что-то ведь типа FROMENTER Добавлено @ 13:34 Coocky Не у меня там выполняется кое-что, да это и не даст ничего. Кнопку то мне вконце концов нажимать надо, а OnOk я вызываю из функции нажатия кнопки. Суть вот в чем: прога работает себе работает, и вот происходит "событие", она на передний план, а в ней эта кнопка. А человек в это время бывало текст набивает в ворде и во всю жмет пробелы, а на кнопку эту надо очень обдумано нажать, нажать и галочку в тетраке нарисовать обязательно (или еще чего, неважно) -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Да нормальный метод, я думаю единственный -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |