MFC 中我用这段代码实现了全屏无边框,请问怎么退出去全屏呢 请赐教 俺认真学学

    else if(FullScreen==1)
    {
        rect.left = 0;
        rect.right= GetSystemMetrics(SM_CXSCREEN);
        rect.top = 0;
        rect.bottom = GetSystemMetrics(SM_CYSCREEN);

        FreerdpWidget *widget = new FreerdpWidget;  
        widget->_freerdp.init(workdir.c_str(),programpath.c_str(),NULL, url.c_str(), name.c_str(), 
            pass.c_str(),domain.c_str(), rect.right, rect.bottom);
//      widget->Create(NULL,WS_POPUP|WS_THICKFRAME, 0, hWnd, rect, 0);// 

        widget->Create(NULL,WS_OVERLAPPEDWINDOW, 0, hWnd, rect, 0);//

        SetWindowPos(widget->m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//
        CenterWindow(widget->m_hWnd);
        ShowWindow(widget->m_hWnd, SW_SHOWNORMAL);// 
        err = 1;

参考修改一下代码

rect.left = 100;
rect.right= GetSystemMetrics(SM_CXSCREEN) - 200;
rect.top = 100;
rect.bottom = GetSystemMetrics(SM_CYSCREEN) - 200;

你全屏前保存一个当前窗口的大小,然后全屏后,捕获ESC按键事件,然后再用SetWindowPos把窗口大小调整回去。

 BOOL CSerialDlg::PreTranslateMessage(MSG* pMsg)  
{  
    // TODO: Add your specialized code here and/or call the base class  
    // 把Esc和Enter按键事件消息过滤掉,否则该消息会导致对应应用程序调用OnOK()方法,结束应用程序  
    if (pMsg->message == WM_KEYDOWN)  
    {  
        switch(pMsg->wParam)  
        {  
            case VK_ESCAPE: //Esc按键事件  
                            //这里设置窗口大小回去 SetWindowPos()
                return true;  
            default:  
                ;  
        }  
    }  

    return CDialogEx::PreTranslateMessage(pMsg);  
}