windows/mfc 隱藏窗口接受消息的問題

實現隱藏窗口 的顯示

我要實現的功能是 程序一直將窗口隱藏起來,當接收到其他程序發送過來的消息之後 就顯示,執行任務,完成之後繼續隱藏起來。
所以 設置顯示標記s_bShow

OnPaint 函數//實現 根據s_bShow來顯示和隱藏界面

    if(g_snShow == 0)
    {
        ShowWindow(SW_HIDE);
        return;
    }

    //do work
    s_bShow =false;
    ShowWindow(SW_HIDE);

OnSize

實現接受其他程序發送過來的任務消息,然後顯示窗口,置位s_bShow 同時通知WM_PAINT消息

ShowWindow(SW_SHOW);
s_bShow = true;
::SetWindowPos(this->m_hWnd,
HWND_TOPMOST,g_rect.left,g_rect.top,nWidth,nHeight,SWP_NOACTIVATE);
ShowInTaskbar(this->m_hWnd,FALSE);
Invalidate(TRUE);

隱藏窗口 的坑

1、隱藏窗口 能接受WM_SIZE消息,但是不能接收WM_PAINT消息
所以在OnSize 裏面就必須 調用 ShowWindow(SW_SHOW); 才能使窗口收到_WM_PAINT消息

發佈了23 篇原創文章 · 獲贊 15 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章