1

在此处输入图像描述

当用户单击窗口 B 时,窗口 C 变为可见。

情况 1:当窗口 C 可见并且用户单击窗口 A 或 B 或窗口 A 的任何其他子窗口上的任意位置时,窗口 C 变为不可见。

情况2:当窗口C可见并且用户点击窗口C然后程序做一些事情并且使窗口C不可见时。[窗口 C 有更多子窗口]

如何实现此功能?

SetCapture 不适用于情况 2。

在窗口 B 这就是我得到的,它适用于情况 1,但显然不适用于情况 2。

LRESULT WindowB::LButtonDown ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    if ( !capture )
    {
        ::SetCapture ( hwnd );
        capture = true;
        windowC->show (  );
    }
    else
    {
        ::ReleaseCapture (  );
        capture = false;
        windowC->hide (  );
    }
    return 0;
};

PS:我使用纯winapi和oop c++​​,以及我自己的windows和消息处理包装器。

编辑:根据要求添加了更多代码。

LRESULT WindowC::lButton ( UINT message, WPARAM wParam, LPARAM lParam )
{


    doStuff (  );

    ::PostMessage (  hParent, WM_COMMAND, WPARAM ( BN_CLICKED ), LPARAM ( hwnd )  );

    return 0;


};
4

0 回答 0