当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 实现标题条的显示与隐藏
实现标题条的显示与隐藏 作者:rockieyung 下载本文示例源代码 CWnd类提供了一个函数ModifyStyle(),用于改变窗口的风格,原型如下: 以下以一个MFC MDI应用为例说明:(功能和代码为啥不分开,感觉上不能1、2、3排起来) void CMainFrame::OnViewTitleBar() { m_bViewTitleBar = !m_bViewTitleBar; if (m_bViewTitleBar == FALSE) { // 隐藏TitleBar ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED); } else { // 显示TitleBar ModifyStyle(0, WS_CAPTION, SWP_FRAMECHANGED); }}4. 为OnUpdateViewTitleBar添加如下实现void CMainFrame::OnUpdateViewTitleBar(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_bViewTitleBar);}ModifyStyle在内部实际调用了三个API函数,在OnViewTitleBar也可以使用API来直接实现。void CMainFrame::OnViewTitleBar() { m_bViewTitleBar = !m_bViewTitleBar; LONG lStyle = ::GetWindowLong(this->m_hWnd, GWL_STYLE); if (m_bViewTitleBar == FALSE) { // 隐藏TitleBar ::SetWindowLong(this->m_hWnd, GWL_STYLE, lStyle & ~WS_CAPTION); ::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);}else { // 显示TitleBar ::SetWindowLong(this->m_hWnd, GWL_STYLE, lStyle | WS_CAPTION); ::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);}本文源程序在Win2000 SP3 + VC6.0中调试通过。 |
评论 (0) All