在Qt4中捕获系统消息的标准方法是什么?

时间:2010-06-22 16:01:18

标签: c++ qt4

我一直在寻找一种在Qt4中捕获和检索系统消息的方法,特别是WM_DEVICECHANGE消息等。我知道如何在C#中,但可以找到关于如何在Qt4中的任何结论性文本。 提前谢谢..

1 个答案:

答案 0 :(得分:1)

比如在MainWindow子类中实现winEvent()方法。

#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摄像头插入系统并将其移除来测试了上述内容,并且我确实在明文编辑中获得了适当的输出效果。当然,您应该在Qt文档中看到有关winEvent()方法的更多信息。 (有关何时从函数等返回false或true的信息)