Какой стандартный способ перехвата системных сообщений в Qt4? - PullRequest
1 голос
/ 22 июня 2010

Я искал способ перехватывать и извлекать системные сообщения в Qt4, в частности сообщения WM_DEVICECHANGE среди других.Я знаю, как в C #, но могу найти любой убедительный текст о том, как в Qt4.Заранее спасибо ..

1 Ответ

1 голос
/ 05 июля 2010

Изучите реализацию метода winEvent (), скажем, в вашем подклассе MainWindow.

#include "Windows.h"
#include "Dbt.h"

bool MainWindow::winEvent(MSG *message, long *result)
{
    if (message->message==WM_DEVICECHANGE)
    {
        ui->plainTextEdit->appendPlainText("WM_DEVICECHANGE message received");
        if (message->wParam==DBT_DEVICEARRIVAL)
            ui->plainTextEdit->appendPlainText("A new device has arrived");
        if (message->wParam==DBT_DEVICEREMOVECOMPLETE)
            ui->plainTextEdit->appendPlainText("A device has been removed");
    }
    return false;
}

Я только что проверил вышеупомянутое, вставив свою USB-видеокамеру в систему и удалив ее, и я получил соответствующийсмотреть вывод в текстовом редакторе.Конечно, вы должны увидеть дополнительную информацию о методе winEvent () в документации Qt.(Информация о том, когда возвращать false или true из функции и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...