1.全屏
void showFullScreen(bool isTipHide)
{
m_isFull = true;
if (isTipHide)
{
m_isRealFull = true;
if(m_isMaxScr)
ShowWindow(SW_RESTORE);
AfxGetApp()->GetMainWnd()->ModifyStyle(WS_CAPTION, 0, SWP_DRAWFRAME);
ShowWindow(SW_MAXIMIZE);
}
CRect rect;
GetWindowRect(rect);
m_osg->MoveWindow(rect);
}
2.取消全屏
void showRestoreScreen()
{
m_isFull = false;
if (m_isRealFull)
{
m_isRealFull = false;
AfxGetApp()->GetMainWnd()->ModifyStyle(0, WS_CAPTION, SWP_DRAWFRAME);
ShowWindow(SW_RESTORE);
if(m_isMaxScr)
ShowWindow(SW_MAXIMIZE);
}
resize();//--重置其他控件窗口
}
另外:控件屏蔽esc
class Cosg :public CxxxOcx
{
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
};
BOOL Cosg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYDOWN && (pMsg->wParam == VK_ESCAPE) || (pMsg->wParam == VK_RETURN))
{
if (pMsg->wParam == VK_ESCAPE)
{
showRestoreScreen();
}
return TRUE;
}
return CxxxOcx::PreTranslateMessage(pMsg);
}
这段代码实现了一个全屏显示和恢复窗口大小的函数,并且在全屏模式下屏蔽了ESC键的功能。`showFullScreen`函数通过修改窗口样式实现全屏,而`showRestoreScreen`则用于恢复窗口到原来的大小。`PreTranslateMessage`函数拦截并处理键盘消息,当检测到ESC键被按下时,调用`showRestoreScreen`退出全屏。
578

被折叠的 条评论
为什么被折叠?



