Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не работает edit control

61K
29 июня 2010 года
computer
2 / / 29.06.2010
Пытаюсь создать программу с полем для редатирования текста,
на чистом Windows API.Но нельзя вводить буквы в этом поле.
То есть курсор мигает,можно текст выделять,копировать,
вставлять,вырезать,перемещаться по нему,использовать клавишу delete.
Но буквы по отдельности (и цифры,вся левая часть клавиатуры)
не вводятся.Клавиша backpace тоже не действует,и enter.
В чем бы тут проблема? Может какая-то несовместимость
из-за Unicode? Работаю под Windows XP,но в программе везде ANSI
версии функций,однобайтные (что и хотелось бы).
62K
30 июня 2010 года
qwert2010
1 / / 30.06.2010
а исходник можно тут выложить?:)
заодно с rc файлом
14
30 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Поддерживаю. Исходник с минимальным примером где не работает (2 окна - основное и EDIT) приложите. Аттачем.
399
30 июня 2010 года
KIV
432 / / 20.01.2009
TranslateMessage в цикле сообщений вызываете? Проблема, скорее всего, в этом. Дело в том, что нажатия на клавишу приходят в виде сообщения WM_KEYDOWN с кодом клавиши. TranslateMessage, если через него проходит WM_KEYDOWN, посылает ещё и сообщение WM_CHAR с кодом символа. А EDIT обрабатывает для ввода текста только WM_CHAR. Цикл сообщений должен выглядить так:
 
Код:
while (GetMessage(&msg, 0, 0, 0)) {
  /* >> Тут ещё может быть код обработки горячих клавиш << */
  TranslateMessage(&msg);
  DispatchMessage(&msg);
}
61K
01 июля 2010 года
computer
2 / / 29.06.2010
Спасибо.Контроль заработал. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог