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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章