Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка символа 
:(
    Опции темы
Гость_Владимир
Дата 12.3.2004, 10:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здраствуйте коллеги,нуждаюсь в вашей помощи.Проблема вот какая.
Делаю обыкновенный хук.
При нажатии комбинации алт +а должен вставляться определенный символ,но он просто напросто игнорируеться системой,не могу понять по какой причине.
Первый кейс не работает зато второй в полном порядке.
Не могу найти причину,раскладку переключаю на русский шрифт(так нужно).
Думаб что проблема в этом.
case 'A':
const char *a;
a="Ј";
put_text(a);
break;

case 'B':
put_text("Это другой текст");
break;

  Вверх
Гость_Владимир
Дата 12.3.2004, 10:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











AnsiString r;
r='£';

Сейчас кинул лайбел и мемо
при нажатие на лейбел вставляеться символ.
Так почему он не вставляеться в первом вариантеconfused.gif

  Вверх
Гость_Владимир
Дата 12.3.2004, 11:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите хоть в каком направлении двигаться заранее спасибо за любое содействие.
  Вверх
mr.DUDA
Дата 12.3.2004, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Клавиши, нажимаемые с ALT не генерируют WM_KEYDOWN, см. MSDN (также как и кл. F10). Вместо этого можно перехватить WM_SYSKEYDOWN. И вообще, я бы рекомендовал использовать вместо хука WH_KEYBOARD хук WH_GETMESSAGE (для сообщений, посланных SendMessage) + хук на WH_CALLWNDPROC (для сообщений, доставаемых системой из очереди - например, посланных PostMessage, а также мессаги типа WM_MOUSEMOVE).


--------------------
user posted image
PM MAIL WWW   Вверх
Unregistered
Дата 12.3.2004, 20:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Был бы очень признателен за маленький пример.
  Вверх
Гость_Владимир
Дата 12.3.2004, 20:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Когда ты ловишь нажатия клавиш хуком WH_KEYBOAD, то через твою функцию проходят ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ. Вернув не нуль, ты можешь какое-то нажатие/отжатие отменить и там же с помощью keybd_event сымитировать другое нажатие. WM_KEYDOWN применимо толко к окну, которого у тебя нет.
  Вверх
mr.DUDA
Дата 12.3.2004, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
Когда ты ловишь нажатия клавиш хуком WH_KEYBOAD, то через твою функцию проходят ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ. Вернув не нуль, ты можешь какое-то нажатие/отжатие отменить и там же с помощью keybd_event сымитировать другое нажатие. WM_KEYDOWN применимо толко к окну, которого у тебя нет.

Насчёт "WM_KEYDOWN применимо толко к окну, которого у тебя нет" - не понятно, что имеется ввиду.

"ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ" тоже неправильно: не ловятся клавиши, нажимаемые вместе с ALT.


--------------------
user posted image
PM MAIL WWW   Вверх
Гость_Владимир
Дата 12.3.2004, 21:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Поповоду"ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ"
пример перед тобой все работает
case 'B':
put_text("Это другой текст");
break;
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.