• 5740阅读
  • 4回复

最小化 隐藏?? [复制链接]

上一主题 下一主题
离线buf1024
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-27
— 本帖被 XChinux 执行加亮操作(2008-08-09) —
自己写个程序,当用户按最小化按钮时,不出现在任务栏中,原先以为写最小化事件即可,但QT4并没有这个事件,于是就重写bool QWidget::event(QEvent*event)这个事件,如下:
  1. bool MainDialog::event(QEvent *e) {
  2.     if(e->type() == QEvent::WindowStateChange) {
  3.         if(windowState() == Qt::WindowMinimized) {
  4.             if(QMessageBox::question(this, tr("minimize"),
  5.                 "Receive minimize event??", QMessageBox::Ok|QMessageBox::Cancel,
  6.                 QMessageBox::Cancel)==QMessageBox::Ok) {
  7.                     hide();
  8.                     return true;
  9.             }
  10.         }
  11.     }
  12.     return QWidget::event(e);
  13. }


最小化时可以接收到消息,但却不起作用。
有没可用的解决方案??
谢谢
离线buf1024
只看该作者 1楼 发表于: 2008-08-03
顶!!
离线wangbenqq

只看该作者 2楼 发表于: 2008-08-04
试一下FLAG
离线duduqq

只看该作者 3楼 发表于: 2008-08-09
你判断条件错了,用if(isMaximized())就可以了
离线jxlczjp77

只看该作者 4楼 发表于: 2008-08-11
用这个
bool QMyWidget::winEvent( MSG *m, long *result )
{
    switch ( m->message )
    {
    case WM_SYSCOMMAND:
        {
            if ( m->wParam == SC_MINIMIZE )
            {
                hide();
                return true;
            }
        }
        break;
    default:
        break;
    }
    return QWidget::winEvent(m, result);
}
快速回复
限100 字节
 
上一个 下一个