我是新手并编写了类似的内容:
class MyXcbEventFilter : public QAbstractNativeEventFilter
{
public:
MyXcbEventFilter():myWindow(Q_NULLPTR)
{}
void setMainWindow(QMainWindow* _mainWindow){
myWindow=_mainWindow;
}
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *) Q_DECL_OVERRIDE
{
MSG * pMsg = static_cast<MSG *>(message);
if (WM_ENDSESSION==pMsg->message||WM_QUERYENDSESSION==pMsg->message)
{
QSound::play(":/Sound/start.wav");
if(myWindow!=Q_NULLPTR){
myWindow->close();
}
}
return false;
}
private:
QMainWindow* myWindow;
};
我想要做的是检测系统关闭并进行一些清理。
当应用程序窗口最大化时,代码正常工作,但当应用程序窗口最小化到系统托盘时,代码无法正常工作。
怎么了?
平台是:windows 10 64,Qt 5.7.1,MSVC2015