| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > добавление в дерево |
| Автор: Rickert 1.10.2008, 08:32 |
| Есть диалог. По действию из меню заполняет CTreeCtrl неопред. кол-во элементов. В этом же диалоге есть ещё одно дерево и стоит обработка PreTranslateMessage, в которой отлавливается нажатие клавишь. До заполнения первого дерева, при нажатии клавишь, всё нормально, но после заполнения появляются звуки как будто где-то предупреждение вываливается. При этом, если я меняю фокус первого дерева на второе (которое пустое) - просто тыкаю мышкой в него: звуки исчезают. Перехожу фокусом обратно на первое - опять появляются. Есть два вопроса: 0) Почему вдруг музыкальное сопровождение? 1) Как убрать фокус програмно? |
| Автор: Earnest 1.10.2008, 12:13 |
| 1) Виндоус пищит, если клавиатурный или мышиный ввод приходит в окно, которое его не принимает 2) Фокус можно не убрать, а переставить (где-то он должен быть) - SetFocus |
| Автор: Earnest 1.10.2008, 17:19 |
| Не поняла, в чем вопрос? Символы-то все равно попадают в текущее окно ввода, несмотря на все твои ifы... |
| Автор: Rickert 2.10.2008, 05:33 |
| Earnest, хорошо, тогда так: как принимать этот ввод, избавиться от писка? |
| Автор: Earnest 2.10.2008, 08:27 | ||
Сам ведь ответил... Можно еще в PreTranslate, если фокус в пищищем дереве, не отдавать сообщения базовому обработчику, а возвращать TRUE (чтобы сообщение больше не обрабатывалось). |
| Автор: Rickert 3.10.2008, 04:01 | ||
Вот что значит: "Учить мат. часть сынок!". Спасибо, как всегда выручаешь советом |