Мне нужно удалить все сообщения, связанные с клавиатурой, из очереди сообщений в потоке. После некоторых исследований мне удалось написать следующий код:Windows - Удаление сообщений, связанных с клавиатурой из очереди сообщений
for(MSG zMsg; PeekMessage(& zMsg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE););
Но он не работает.
Я не знаю, является ли это хорошей практикой или нет, но у меня нет возможности и времени, чтобы переписать код, над которым я работаю, чтобы сделать его более чистым.
Как я могу заставить этот код работать?
Благодарим за помощь!
EDIT: Я использую WindowsCE
Почему вы думаете, что не работает? Мне это хорошо. –
Потому что, как только я дойду до того, что произойдет, клавиши будут отправлены. Я добавил вызов :: MessageBox() в третьей части цикла for, чтобы убедиться, что он находит хотя бы одно сообщение, но всплывающее окно не появляется. Возможно, я использую неправильные фильтры? – Virus721
Я думаю, что нашел причину. WindowsCE не обрабатывает значение по умолчанию (NULL) для параметра дескриптора окна. – Virus721